【发布时间】:2020-11-13 16:40:36
【问题描述】:
public class RequestClass{
private String[] a1;
private String[] a2;
private String[] a3;
private String[] a4;
}
public class Entity{
private String a1;
private String a2;
private String a3;
private String a4;
}
我有一个下面的 sql 查询来映射如何应用条件来使用 spring JPA 获取记录
select * from entity where a1 in ('26')
and a2 in ('1','2','3')
and a3 in ('43')
and a4 in ('1');
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Object> criteriaQuery = criteriaBuilder.createQuery();
Root<Entity> root = criteriaQuery.from(Entity.class);
Expression<String> aExpression = root.get("a1");
Predicate predicate = aExpression.in(RequestClass.geta1());
Expression<String> bExpression = root.get("a2");
Predicate predicate = bExpression.in(RequestClass.geta2());
Expression<String> cExpression = root.get("a3");
Predicate predicate = cExpression.in(RequestClass.geta3());
Expression<String> dExpression = root.get("a4");
Predicate predicate = dExpression.in(RequestClass.geta4());
我已经google了但是没有找到解决办法
【问题讨论】:
-
你试过下面的答案了吗?
标签: spring spring-boot spring-data-jpa entitymanager hibernate-criteria