相关疑难解决方法(0)

JPA CriteriaBuilder - 如何使用"IN"比较运算符

您能帮我解决一下如何将以下代码转换为使用条件构建器的"in"运算符吗?我需要使用"in"使用列表/数组的用户名进行过滤.

我也尝试使用JPA CriteriaBuilder进行搜索 - "in"方法但是找不到好的结果.如果你能给我这个主题的参考网址,我也非常感谢.谢谢.

这是我的代码:

//usersList is a list of User that I need to put inside IN operator 

CriteriaBuilder builder = getJpaTemplate().getEntityManagerFactory().getCriteriaBuilder();
CriteriaQuery<ScheduleRequest> criteria = builder.createQuery(ScheduleRequest.class);

Root<ScheduleRequest> scheduleRequest = criteria.from(ScheduleRequest.class);
criteria = criteria.select(scheduleRequest);

List<Predicate> params = new ArrayList<Predicate>();

List<ParameterExpression<String>> usersIdsParamList = new ArrayList<ParameterExpression<String>>();

for (int i = 0; i < usersList.size(); i++) {
ParameterExpression<String> usersIdsParam = builder.parameter(String.class);
params.add(builder.equal(scheduleRequest.get("createdBy"), usersIdsParam) );
usersIdsParamList.add(usersIdsParam);
}

criteria = criteria.where(params.toArray(new Predicate[0]));

TypedQuery<ScheduleRequest> query = getJpaTemplate().getEntityManagerFactory().createEntityManager().createQuery(criteria);

for (int i = 0; i < usersList.size(); …
Run Code Online (Sandbox Code Playgroud)

orm hibernate jpa criteria-api jpa-2.0

49
推荐指数
2
解决办法
13万
查看次数

标签 统计

criteria-api ×1

hibernate ×1

jpa ×1

jpa-2.0 ×1

orm ×1