Запутаться в отношениях с объектами с помощью Android Room
При использовании Android-постоянная библиотека данных Android Room, как я могу напрямую вставить Comment
Объект в базу данных, включая все значения поля, и как я могу запросить все значения в качестве объекта комментария?
Как я знаю, я не могу использовать Comment
Объект как Entity
в каталоге комнаты, из-за поля replyComment
также Comment
Объект. И я не могу запросить Comment
Объект даже я определяю POJO, используя @Relations
аннотации либо из-за отношений один-к-одному и отношений один-ко-многим, все включены в Comment
Объект.
Есть ли другой способ, кроме изменения Comment
Определение модели, например использование внешнего ключа, влияние на действие вставки и действие запроса?
public class Comment {
public String content;
public String id;
public Comment replyComment;
public User user;
public List<ImageMedia> images;
}
public class User{
public String id;
public String name;
}
public class ImageMedia{
public String key;
public String url;
}
1 ответ
Есть ли другой способ, кроме изменения определения модели комментария
Нет. Вам нужно будет создать набор сущностей, которые моделируют структуру базы данных, где у детей есть столбцы внешнего ключа, указывающие на их родителей:
CommentEntity
имеет внешний ключ кCommentEntity
за ответCommentEntity
имеет внешний ключ кUserEntity
ImageMediaEntity
имеет внешний ключ кCommentEntity