ブルース・オールマイティ


ブルース・オールマイティ ミラクル・エディション

ブルース・オールマイティ ミラクル・エディション

TSUTAYAでレンタルしてたのを観ました。
面白かったです。
ジムキャリーの演技が最高です。
自分が神の力を手に入れたら何をするだろう?
とりあえずこの映画の主人公のように自分の都合のいいようにするだろうな。
その後はどうなるか分からないけど。
一回観てみることをお勧めします。

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的な考えだとこのやり方が王道なのかなぁ。