
我想返回类似的帖子列表.
@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上的布尔字段所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)