Android Room 分页 - 如何读取两个表?

我有一个帖子表,它存储来自服务器的论坛帖子。这些帖子有评论,我将其存储在名为“评论”的不同表下。目前,我正在使用 Room 分页库和 PagedAdapter 来列出数据库中的帖子。现在我需要显示热门评论和帖子。如何将两个表的结果合并到一个数据源中?处理这种情况的正确方法是什么?



慕的地10843
浏览 69回答 1
1回答

隔江千里

简而言之,您需要使用关系。例子:@Entitypublic class Comment{    @PrimaryKey    public int id;     // comment id    public int postId; // post id this comment belongs to    public String comment;}这是带有评论的帖子的 POJO,它将是查询的结果// Note: No annotation required at this class definition.public class PostWithComments {   @Embedded   public Post post;   @Relation(parentColumn = "id", entityColumn = "postId", entity = Comment.class)   public List<Comment> comments;}您的查询将是:@Dao public interface PostCommentsDao {     //Query    @Query("SELECT * FROM Post")    public List<PostWithComments> loadPostWithComments(); }这将使所有帖子以及属于每个帖子的所有评论都包含在漂亮的 POJO 中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java