我们可以将两个 POJO 从两个 Json 合并为一个吗

Can we combine Two POJO from two Json to one

我还没有 100% 了解如何做到这一点。不过我还是先说明情况吧

我让用户搜索图书并根据搜索中的第一个结果给出 10 个推荐。我将推荐的书籍存储在 RecommendBooks(POJO) 中,一旦我获得推荐的书籍,我就会对存储在另一个 POJO BookReview(POJO) 中的每本书进行评论。

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

我有点困惑如何对评论进行排序,而不是基本上创建基于评论订购的 RecommendedBooks 的副本。

谁有好的方法吗?

拿这些 类:

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)));