如何解决如何编写 Criteria Query 来检查同一列中的多个值以及其他 WHERE 条件?
请将以下 sql 查询转换为条件查询--------- 我有下表 PEOPLE-
查询必须返回满足条件的记录列表 - Name='Tom' AND Code='A' or 'B' or 'C' ----在这种情况下只有两条记录-----
res['id'].append(result['id'])
res['lat'].append(location['lat'])
res['long'].append(location['long'])
我可以编写criteriaQuery直到第一个where条件--
Select * from PEOPLE
where NAME='TOM' and CODE in ('A','B','C') ;
解决方法
你可以试试这个代码:
ArrayList<String> values= new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
//Your creteria
Criteria cr = session.createCriteria(People.class);
//Array of conditions
List<Criterion> conditions = new ArrayList<Criterion>();
Criterion nameCr= Restrictions.eq("name","Tom");
conditions.add(nameCr);
Criterion codeCr =Restrictions.in("code",values) ;
conditions.add(codeCr);
Conjunction conjunction = Restrictions.conjunction();
for (Criterion criterion : conditions) {
conjunction.add(criterion);
}
cr.add(conjunction);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。