gpt4 book ai didi

java - 在 JPA 规范中应用 Order By

转载 作者:行者123 更新时间:2023-12-05 05:03:44 25 4
gpt4 key购买 nike

我正在使用 JPA 规范编写代码:

片段 1:

Specification.where(withTopics())
.and(withCar())
.and(withInsurance())
// how to add order by

每个条件方法的结构如下:

public static Specification<Page> withCar(String type) {
return new Specification<Page>() {
@Override
public Predicate toPredicate(Root<Page> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
return // logic return cb
}
};
}

我想添加按条件排序。

我用表达式写了顺序:

public static Specification<Page> orderByConditions(String input1, String input2) {
return new Specification<Page>() {
@Override
public Predicate toPredicate(Root<Page> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
Expression<Object> cases = cb.selectCase()
.when(cb.equal(cb.lower(root.get("carn_ame")), inputTopic.toLowerCase()), 1)
.when(cb.like(cb.lower(root.get("insurance_name")), "%" + inputTitle.toLowerCase() + "%"), 2)
.otherwise(3);
Order order = cb.desc(cases);
cb.createQuery().orderBy(order);
// what to return
}
}
}

我应该从我的 orderByConditions() 返回什么,以便我可以将它应用于我在 Snippet1 中的规范?

但是我应该如何将它添加到我的规范中呢?

最佳答案

如果您没有条件/谓词,您可以返回“无条件”1 = 1

return cb.equal(cb.literal(1), 1);

关于java - 在 JPA 规范中应用 Order By,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61498522/

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