Hibernateのdelete

HibernateのHQLを使ってdeleteメソッドを呼ぶときだけど、
Queryオブジェクトを使ってできないのかなぁ?
たとえば in を使う SELECT だと下記のようになると思います。


Query query = session.createQuery("from Object a where a.id in (:id)");
query.setParameterList("id",params);
List result = query.list();

同じように in を使ってDELETEをやりたい場合はどうすれば?
Sessionオブジェクトにはこのメソッドしかないし。


session.delete(Object object);
session.delete(String query,Object value,Type type);
session.delete(String query,Object[ ] values,Type[ ] types);

下記のようにListを取ってIteratorで回すしかないのかなぁ・・・


Query query = session.createQuery("from Object a where a.id in (:id)");
query.setParameterList(params);
List result = query.list();
for(Iterator ite = result.iterator() ; ite.hasNext();){
   session.delete(ite.next());
}

うーん。ダサいなぁ。
でも、下記メソッドのソース見たら、結局findして同じようにdelete呼んでるんだよね。


session.delete(String query,Object[ ] values,Type[ ] types);

ORM的な考えだとこのやり方が王道なのかなぁ。