Я пытаюсь реализовать Many-to-many relationship
с Realm
между User
и Chat
объектами. Я следую официальной документации . Вот мои объекты.
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)
, но просто получаю тот же результат.