我有一个SQL查询如何在hibernate中使用条件执行这个sql查询?
delete from response where r_id in (1,2,3,4) and u_id='10';
现在我想用Hibernate来执行这个缺乳。
我知道我可以通过createSQLQuery
来做到这一点,但我必须使用标准。
我该怎么做?
谢谢。
我有一个SQL查询如何在hibernate中使用条件执行这个sql查询?
delete from response where r_id in (1,2,3,4) and u_id='10';
现在我想用Hibernate来执行这个缺乳。
我知道我可以通过createSQLQuery
来做到这一点,但我必须使用标准。
我该怎么做?
谢谢。
如果您必须在此处使用条件,则必须将所有对象提取到Java并使用Java机制将其删除。
这种方法是在性能方面非常慢,但IFF你真的必须使用它:
List<Response> doomedResponses = createCriteria(Response.class).addRestriction(/* restrictions here*/).list();
for(Response doomed : doomedResponses) {
entityManager.remove(doomed);
}
您需要添加两个限制,一个是IN,这里是限制的Java API。在
静态准则在(字符串propertyName的,对象[]值) 应用一个 “中的” 约束的命名属性
所以,你的代码看起来应该是这样
Criteria criteria = session.createCriteria(Yourclass.class);
// create a collection for IN values comparision and lets assume it is called CollectionofValues
criteria.add(Restrictions.in(r_id, collectionofValues);
criteria.add(Restriction.eq(u_id,'10'));