将RealmResults转换为RealmObject

时间:2018-04-24 07:42:27

标签: android realm

我有一个realmObject自定义类

public class TerminalTable extends RealmObject implements Serializable{

public String logo = "";

public String company_id = "";

public String company = "";

public String company_identification = "";

public String address = "";

public String serial_number = "";

public String getLogo() {
    return logo;
}

public void setLogo(String logo) {
    this.logo = logo;
}

public String getCompany_id() {
    return company_id;
}


public String getCompany() {
    return company;
}


public String getCompany_identification() {
    return company_identification;
}



public String getAddress() {
    return address;
}


public String getSerial_number() {
    return serial_number;
}


public String getTerminal_id() {
    return terminal_id;
}




public String getAdditional_text() {
    return additional_text;
}



public String terminal_id = "";


public String additional_text = "";

}

我成功地在我的数据库中插入了一些元素,现在我想选择它。我写了一些代码并且这段代码正常工作,这是一个来源

  public static  RealmResults getTerminalTable()
{
    realm = Realm.getDefaultInstance();
    realm.executeTransaction(realm -> {
        terminalTable = realm.where(TerminalTable.class).findAll();
    });
    return terminalTable;
}

正如你可以看到我的函数返回RealmResults对象,如何重写我的函数可以返回TerminalTable对象,而不是RealmResults 感谢

1 个答案:

答案 0 :(得分:0)

首先,为什么要执行事务以进行读取。

findAll()返回集合对象,然后你必须迭代对象。

对于特定记录,可以选择findFirst()

您正在寻找的,可以通过以下方式完成。

    下面的
  1. 将获取所有记录。

    public static List<TerminalTable> getTerminalTable()
    {
    List<TerminalTable> terminalTable;
    try(Realm realm = Realm.getDefaultInstance()) {
    
        terminalTable = realm.copyFromRealm(realm.where(TerminalTable.class).findAll()); // return all data as list
    }
    return terminalTable;
    }
    
  2. 从领域中获取单个记录

    public static TerminalTable getSingleTerminalTable()
    {
    TerminalTable terminalTable;
    try(Realm realm = Realm.getDefaultInstance()) {
        terminalTable = realm.copyFromRealm(realm.where(TerminalTable.class).findFirst());
    }
    return terminalTable;
    }
    
  3. 如果要处理托管对象,则查询应该类似于

    terminalTable = realm.where(TerminalTable.class).findFirst();