2016-04-13 10 views
0

私は休止状態で春を使用しています。Hibernate - 関連プロパティを選択的にフェッチする方法?

Iフェッチしたいオブジェクトが属性を持っているクラスA、である - クラス内で、マッピングファイルで

public class A { 
private Integer aID; 
private Set<B> bs; 
private String fieldA1; 
private String fieldA2; 

// setters and getters 
} 

public class B { 
private Integer bID; 
private String fieldB1; 
private String fieldB2; 

// setters and getters 
} 

ようなクラスBのオブジェクトの集合、マッピングタグ、Iは含まれ、

<set name="bs" table="TABLE_B"> 
    <key column="A_ID" /> 
    <one-to-many class="com.proj.test.B"/> 
</set> 

は今、私の中にfieldB1とfieldB2の値に依存する基準でろ過BSを持つオブジェクトを取得したいです。 (すべてのBオブジェクトを取得しないように)

提案/回答はありますか?

+0

を使用すると、子オブジェクトにフィルタをしたいフェッチ中? – aksappy

+0

@aksappyはい。たとえば、通常はAオブジェクトには10​​個のオブジェクトがありますが、今はそのオブジェクトを取得するためにdbにクエリを行いたい場合は、いくつかの条件に従ってbオブジェクトをフィルタリングします。 – dannail

+0

Hibernate Criteria APIを使用してこれを行うことはできません。ただし、HQLまたはネイティブクエリを使用できます。 – aksappy

答えて

0

次試してみてください:あなたは意味

@Query(value = "Select a from A a where a.bs.fieldB1 YOUR_CONDITION") 
List<A> findAWithFilteredB(); 
+0

これはリストまたはIterableのUserオブジェクトを返しませんでしたか? – aksappy

+0

はい正しい@aksappy –

+0

@AbdullahWasi私はBのフィールドに応じてAをフィルタリングしたいという意味ではありません。私が望むのは、単にBをフィルタリングして、同じAオブジェクトを取得することです。 – dannail

関連する問題