我们可以将两个 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)));
我还没有 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)));