【发布时间】:2019-01-11 12:45:27
【问题描述】:
我正在尝试在User 和Chat 对象之间实现Many-to-many relationship 和Realm。我正在关注the oficial documentation。这是我的对象。
public class User implements RealmModel {
@PrimaryKey
private String userId;
private String name;
private String phone;
private String pictureURL;
private String thumbnailURL;
private String pushToken;
private String status;
private long lastOnlineMs;
public RealmList<Chat> chats = new RealmList<>();
public User() {}
}
public class Chat implements RealmModel {
@Required
@PrimaryKey
private String chatId;
private long creationDateMs;
private String creatorUserId;
private String name;
@LinkingObjects("chats")
public final RealmResults<User> users = null;
private int chatType;
public Chat() {}
}
这是我在数据库中创建Chat 对象并添加关系的代码。用户之前已正确创建:
public void addChat(final Chat chat, final User creatorUser, final User opponentUser ) {
realm.executeTransaction(realm -> {
realm.copyToRealmOrUpdate(chat);
creatorUser.chats.add(chat);
opponentUser.chats.add(chat);
});
}
执行代码后User 和Chat 对象存储在数据库中,但用户的chat list 为空。
我也用realm.beginTransaction,和executeTransaction一样,只是执行的区别是线程安全的。
我也使用realm.insertOrUpdate(obj),但结果相同。
【问题讨论】:
标签: android database realm persistence one-to-many