0

SQLクエリがあります

delete from response where r_id in (1,2,3,4) and u_id='10';

今、休止状態を使用してこの queru を実行したいと思います。

これを実行できることはわかっていますcreateSQLQueryが、基準を使用する必要があります。

どうすればこれを行うことができますか?

ありがとう。

4

2 に答える 2

1

2 つの制限を追加する必要があります。1 つは 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'));
于 2013-05-29T08:36:46.773 に答える
1

ここで基準を使用する必要がある場合は、すべてのオブジェクトを Java にフェッチし、Java メカニズムを使用してそれらを削除する必要があります。

このアプローチはパフォーマンスの点で非常に遅いですが、IFF は実際に使用する必要があります。

List<Response> doomedResponses =  createCriteria(Response.class).addRestriction(/* restrictions here*/).list();
for(Response doomed : doomedResponses) {

     entityManager.remove(doomed);
 }
于 2013-05-29T08:30:06.390 に答える