Я хочу вернуть список сообщений наподобие.
@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)
ГДЕ контент: content {contentTime: Long// Unix Timestamp id: String}
AND
public static Long aWeekAgo() {
long day = (1000 * 60) * 60 * 24;
return System.currentTimeMillis() - day * 7;
}
Кажется, это работает не так, как ожидалось, я делаю так?
Edit Хорошо, после написания вопроса теперь ясно, что я хочу сделать.Вот короткая версия.
//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);
}
Итак, но я хочу сделать это с помощью одного запроса и не использовать этот цикл.