java-SQLite:如何从subQuery填充pojo上的布尔字段

java-SQLite:如何从subQuery填充pojo上的布尔字段,第1张

概述我想返回类似的帖子列表.@Query("SELECT*FROMposts")List<Post>getPosts()我有一个pojo.post{name:Stringid:StringpostUid:StringuserHasNewContent:Boolean}现在,我希望列表中的每个帖子都具有userHasNewContent:Boolean,通过检查拥有此帖子的用

我想返回类似的帖子列表.

@query("SELECT * FROM posts")List<Post> getposts()

我有一个pojo.

post {   name:String   ID :String   postUID:String   userHasNewContent:Boolean}

现在,我希望列表中的每个帖子都具有userHasNewContent:Boolean,通过检查拥有此帖子的用户是否具有新内容来填充(不超过一周)

所以我尝试了.

@query("SELECT *,       (SELECT content_uID FROM content WHERE content_uID = postUID AND        contentTime < :aWeekAgo)AS userHasNewContent       FROM posts")List<Post> getposts(String aWeekAgo)

内容是:
   内容{
       contentTime:Long // Unix时间戳
       ID:字符串
   }

public static Long aWeekAgo() {        long day = (1000 * 60) * 60 * 24;        return System.currentTimeMillis() - day * 7;    }

这似乎未达到预期的效果,我是否正在这样做?

编辑
好的,写完问题后,现在很清楚我想做什么.这是简短的版本.

//Get all posts@query("SELECT * FROM posts")List<Post> getposts()//Then loop through them.@query("SELECT count(*) FROM content WHERE contentID :contentUID AND soundTime < : aWeekAgo")int checkIfUserHasNewContent(String uID, long aWeekAgo);List<Post> postsWithNewContentIndicator = new ArrayList<>();for (Post post : postsFromDb) {    post.userHasNewContent(checkIfUserHasNewContent(post.getUID()) > 0);    postsWithNewContentIndicator.add(post);}

因此,但是我想通过一个查询来执行此 *** 作,而不要使用此循环.

解决方法:

您需要按以下方式重写查询

SELECT   *,   (    (      SELECT         COUNT(*)       FROM         (          SELECT             content_uID           FROM             content           WHERE             content_uID = postUID             AND contentTime > : aWeekAgo        )    )> 0  ) AS userHasNewContent FROM   posts
总结

以上是内存溢出为你收集整理的java-SQLite:如何从subQuery填充pojo上的布尔字段全部内容,希望文章能够帮你解决java-SQLite:如何从subQuery填充pojo上的布尔字段所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1081829.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存