手动更新外键。
Manually updating a foreign key.
我非常清楚 Realm 中没有外键。但是我遇到了这个问题。我以规范化的方式接收数据,我必须弄清楚如何正确地保持关系。
示例:
class User{
private int id;
private Email email;
}
class Email{
private int id;
private String address;
}
我收到类似的东西:
{user={id:1, emailId:1}}
如何将此类数据存储在我现有的领域对象中?
您必须自己解析 JSON 才能设置链接。根据您的描述,不清楚您的用户和电子邮件是否已经在 Realm 中,但如果是这样,我会这样做:
class User{
@PrimaryKey
private int id;
private Email email;
}
class Email{
@PrimaryKey
private int id;
private String address;
}
JSONObject json = new JSONObject("{id:1, emailId:1}");
realm.beginTransaction();
User user = realm.where(User.class).equalTo("id", json.getInt("id")).findFirst();
Email email = realm.where(Email.class).equalTo("id", json.getInt("emailId")).findFirst();
user.setEmail(email);
realm.commitTransaction();
我非常清楚 Realm 中没有外键。但是我遇到了这个问题。我以规范化的方式接收数据,我必须弄清楚如何正确地保持关系。
示例:
class User{
private int id;
private Email email;
}
class Email{
private int id;
private String address;
}
我收到类似的东西:
{user={id:1, emailId:1}}
如何将此类数据存储在我现有的领域对象中?
您必须自己解析 JSON 才能设置链接。根据您的描述,不清楚您的用户和电子邮件是否已经在 Realm 中,但如果是这样,我会这样做:
class User{
@PrimaryKey
private int id;
private Email email;
}
class Email{
@PrimaryKey
private int id;
private String address;
}
JSONObject json = new JSONObject("{id:1, emailId:1}");
realm.beginTransaction();
User user = realm.where(User.class).equalTo("id", json.getInt("id")).findFirst();
Email email = realm.where(Email.class).equalTo("id", json.getInt("emailId")).findFirst();
user.setEmail(email);
realm.commitTransaction();