【发布时间】:2020-08-06 08:09:46
【问题描述】:
我正在使用SpringBoot 2.2.6 和JPA,我需要使用标题中提到的IN 子句进行查询。我尝试过:
@Override
public Predicate toPredicate(Root<Distinta> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
List<Predicate> predicates = new ArrayList<>();
.....
.....
for (DistintaCriteria criteria : list) {
switch(criteria.getOperation()) {
case TEST:
Join<Entity, JoinEntity> join = root.join("joinEntity");
predicates.add(join.<Integer>get("id").in(criteria.getValue()));
}
}
其中criteria.getValue() 是一个Integer[] 数组,但它不起作用。你能帮帮我吗?
谢谢大家。
更新
如果我尝试使用与List<String> 相同的Query,它会起作用!使用 Integer 我有这个错误:
Unaware how to convert value [[2, 3, 4, 5] : java.util.ArrayList] to requested type [java.lang.Integer]
【问题讨论】:
标签: spring-boot hibernate jpa jpa-criteria