[play1.2.5] HibernateによるJOINと関連テーブルの条件指定について

637 views
Skip to first unread message

garbagetown

unread,
May 26, 2013, 8:32:00 PM5/26/13
to pla...@googlegroups.com
梅澤です。

JPA2.0, Hibernate 3.6.10の振る舞いについて理解できず困っています。どなたかアドバイス頂けませんでしょうか。

前提:
1. 一対多の関係にあるテーブルA, Bがある
2. テーブルA, Bの主キーはid
3. テーブルA, Bはそれぞれユニークなコード列がある
4. テーブルA, Bにはそれぞれ論理削除用の列がある

要件:
1. 論理削除されていないAをコードを指定して取得したい
2. このとき、対応する論理削除されていないBも併せて取得したい

事象:
1. 指定したコードを持つAに対応するBがすべて取得されてしまう

ソースコード、発行されたSQLを以下のgistに貼りました。
https://gist.github.com/garbagetown/5654510

発行されたSQLを確認したところ、SQLが二度発行されていました。一度目のSQLはほぼ期待通りであるものの、不必要と思われるJOIN句が出力されています。

二度目のSQLが、指定したコードを持つAに対応するBを(論理削除された行を含めて)すべて取得しており、期待と異なります。


要件通りに動作させる実装のヒント、JPAやHibernateの理解に対する誤りの指摘、参照すべきURL等、何でも結構です。お力添え頂きたく、よろしくお願いいたします。

garbagetown

unread,
May 31, 2013, 9:59:21 AM5/31/13
to pla...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages