2012-03-05 4 views
0

私は、次のHibernateのエンティティを持っている:Hibernateのクエリ内部リストに

@Entity 
class A{ 
    String name; 
} 

@Entity 
class B{ 
    List<A> aList; 
} 

私はリストからALL名前がために、例えばBのリストのようなものであること、データベースからすべてのBを取得したいです

配列と同じ文字列の2つのAのリストを持つすべてのBエントリを取得する必要があります。

私はCriteriaクエリを使用することを好みますが、HQLまたはSQlもうまくいきます。

答えて

0

あなたのAとBの実体は、それぞれA_tableとB_tableに保管されており、AからBへの多くのリレーションシップへの1つが列B_IDにA_tableに保持され、その後、対応するSQLは次のようなものになるだろう場合:

select distinct * from B_table join A_table on A_table.b_id=B_table .id where A_table.name="str1" or A_table.name="str2" 

HQLクエリのようなものになります:

select distinct b from B b inner join B.aList as a where a.name='str1' or a.nama='str2'