我想通过添加order by params来扩展这个规范。
public class ProductSearchParams {
private String title;
private String type;
private LocalDateTime publishedAt;
private String sort;
private List<String> sortBy;
}
public Page<ProductFullDTO> findProducts(ProductSearchParams params, Pageable pageable) {
Specification<Product> spec = (root, query, cb) -> {
List<Predicate> predicates = new ArrayList<>();
if (params.getTitle() != null) {
predicates.add(cb.equal(root.get("title"), params.getTitle()));
}
if (params.getType() != null) {
predicates.add(cb.equal(root.get("type"), params.getType()));
}
if (params.getPublishedAt() != null) {
predicates.add(cb.greaterThan(root.get("publishedAt"), params.getPublishedAt()));
}
return cb.and(predicates.toArray(new Predicate[predicates.size()]));
};
return productService.findAll(spec, pageable).map(productMapper::toFullDTO);
}
public Page<ProductFullDTO> findProducts(ProductSearchParams params, Pageable pageable) {
Specification<Product> spec = (root, query, cb) -> {
List<Predicate> predicates = new ArrayList<>();
if (params.getTitle() != null) {
predicates.add(cb.equal(root.get("title"), params.getTitle()));
}
if (params.getType() != null) {
predicates.add(cb.equal(root.get("type"), params.getType()));
}
if (params.getPublishedAt() != null) {
predicates.add(cb.greaterThan(root.get("publishedAt"), params.getPublishedAt()));
}
if (params.getPublishedAt() != null) {
predicates.add(cb.greaterThan(root.get("publishedAt"), params.getPublishedAt()));
}
query.orderBy(builder.desc((root.join(Prodotto_.listaQuoteIng))
.get(QuotaIngrediente_.perc_ing)));
return cb.and(predicates.toArray(new Predicate[predicates.size()]));
};
return productService.findAll(spec, pageable).map(productMapper::toFullDTO);
}
我找不到解决办法如何实施这一点。你能给我一些建议吗?
您是否在询问如何使用sortby
列表来指定排序顺序?以下措施应起作用:
query.orderBy(sortyBy.stream()
.map(root::get)
.map(cb::desc)
.toList());
您还可以通过sort
查询参数(例如sort=name,asc&sort=type,desc&sort=listaquoteing.perc_ing,desc
)将排序顺序传递给pageable
,并轻松地将其调整为Criteria API,请参见下面的答案。
我正在使用Spring Boot webflow和Spring data reactive mongob。我有一个用@Document注释的用户类,它实现了User细节。问题是我有一个带有@Indux(唯一=true)的字段。当应用程序启动时,即使在数据库上创建索引,它也会抛出下面的错误。 以下是课程: 错误: 谢谢你的帮助。
我有搜索输入以及下拉存储为li元素。如何向搜索标签添加自动完成功能,从li标签获取数据,并在搜索输入中显示相应的结果。 自动完成程序应从ul li标签中提取内容并执行操作。可以通过li搜索输入标签完成吗?
我找到了这个项目https://github.com/OAI/OpenAPI-Specification据我所知,我们可以用文件。而且,我能看到http://editor.swagger.io/它可以被渲染成文件。 我的问题是-我怎么能生成静态页面从文件?有任何教程的Spring引导应用程序吗?我应该以某种方式设置文件昂首阔步的配置和获得文件留档?
我有一个lucene查询,可以对索引字段进行全文搜索。我想将日期范围添加到此查询。 我找到了这个问题并在那里使用了答案:如何在日期之间搜索(Hibernate搜索)? 但当我想在两个日期之间获取数据时,它什么也不返回。我使用的是MSSQL数据库,日期字段的类型是datetime。但它在实体类中被注释为。 这是我的实体类: 这就是我进行全文搜索的地方: 有两种不同的查询。一个是在指定字段上进行全文通
问题内容: 用Python的方式搜索或操作排序序列是什么? 问题答案: 是标准库的一部分-您正在寻找这种东西吗?
我一直试图找到解决办法,但没能找到。 Woocommerce在创建订单时保存客户IP地址。 但是,无法通过IP地址搜索订单。 如何将此功能添加到商业订单搜索?