簡體   English   中英

如何在hibernate中使用條件執行此sql查詢?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM