gpt4 book ai didi

java - 使用 Spring data jpa 在运行时构建查询

转载 作者:行者123 更新时间:2023-12-02 10:52:02 24 4
gpt4 key购买 nike

我正在运行时使用 criteriaBuilder 这样构建查询。

过滤器通过几个因素过滤对象:开始日期和结束日期之间的日期、字符串字段与集合中的字符串之一匹配等。

Predicate[] predicates = buildPredicates(filter, criteriaBuilder, root);
criteriaQuery.select(root).where(predicates);

TypedQuery<MonitorStatusHistory> query = entityManager.createQuery(criteriaQuery);

if (filter.getPage() != null && filter.getSize() != null) {
query
.setFirstResult(filter.getPage() * filter.getSize())
.setMaxResults(filter.getSize());
}

return query.getResultList();

如何使用 JPA 存储库中的 spring data jpa 工具实现相同的目标?

我需要支持类似的查询

SELECT * FROM obj WHERE obj.date > filter.startDate and 
obj.date < filter.finishDate and obj.num=12 or obj.num=32

假设过滤器类具有以下属性:

private Set<Integers> allowedNums; (allowed values for obj.num)
private ZonedDateTime startDate; (obj.date > this)
private ZonedDateTime finishDate; (obj.date < this)
private Integer page; (pagination page)
private Integer size; (pagination objs per page)

最佳答案

您可以拥有simple解决方案或 complicated , 一。不幸的是,提供解决方案的时间太长,我有后者的经验,这绝对有效。

关于java - 使用 Spring data jpa 在运行时构建查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52098754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com