为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

1 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

简而言之,您需要使用关系。例子:

@Entity

public 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 中。


查看完整回答
反对 回复 2023-07-13
  • 1 回答
  • 0 关注
  • 68 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信