[英]How to execute this sql query using criteria in hibernate?
我有一個SQL查詢
delete from response where r_id in (1,2,3,4) and u_id='10';
現在我想使用hibernate執行這個queru。
我知道我可以通過createSQLQuery
來做到這createSQLQuery
但我必須使用標准。
我怎么能這樣做?
謝謝。
如果必須在此處使用條件,則必須將所有對象提取到Java並使用Java機制刪除它們。
這種方法在性能方面非常慢,但是你真的必須使用它:
List<Response> doomedResponses = createCriteria(Response.class).addRestriction(/* restrictions here*/).list();
for(Response doomed : doomedResponses) {
entityManager.remove(doomed);
}
你需要添加兩個限制,一個用於IN,這里是Restriction.in的java api
static Criterion in(String propertyName,Object [] values)對命名屬性應用“in”約束
所以你的代碼應該是這樣的
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'));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.