我们可以将两个JJ中的两个POJO组合成一个

时间:2016-06-05 21:30:51

标签: java pojo

我不是100%关于如何做到这一点。但我会先解释一下情况。

我让用户搜索图书并根据搜索中的第一个结果提供10条推荐。我将推荐的图书存储在RecommendBooks(POJO),一旦我有推荐的图书,我就会对另一个POJO BookReview(POJO)中存储的每本图书进行审核。

意向:现在我想根据评论显示推荐的图书

我有点坚持如何对评论进行排序,而不是基本上创建一个基于评论订购的推荐书的副本。

任何人都有这样做的好方法吗?

1 个答案:

答案 0 :(得分:0)

参加以下课程:

class Book {
  String id;
  String name;
}

class Review {
  String bookId;
  String text;
}

class QueryResult {
  Book book;
  Review review;
}

首先你会得到10本推荐书籍:

List<Book> recommended = queryFor10RecommendedBooks();

然后获取评论并将所有内容包装在List<QueryResult>

List<QueryResult> result = recommended.stream()
  .map(b -> new QueryResult(book, getReviewForBook(b)))
  .collect(Collectors.toList());

此代码将一次查询一个评论。您还可以优化它以查询所有10本书的所有评论,然后将它们放在一起。取决于您的数据结构/数据库更快。

其他不错的方法是将结果设为Map<Book, Review>,这也很简单:

Map<Book, Review> result = recommended.stream()
  .collect(Collectors.toMap(Function.identity(), b -> getReviewForBook(b)));