2017-09-16 15 views
0

ためFetchTypeを変更するには、私が@ManyToOne(fetch = FetchType.LAZY)でアノテートつのフィールドでFooエンティティがあるとします。通常、このフィールドは必要ありませんが、一部のクエリでは、すべての要素がすべての関連エンティティで必要です。私は関連するエンティティ(n + 1選択問題)を取得するためにデータベースを1つずつ照会したくありません。 fetchTypeを指定する方法はありますか?ような何か:春JPA:エンティティ

@Repository 
public interface FooRepository extends CrudRepository <Foo, String> { 
    List<Foo> findAll(FetchType fetchType); 
} 

答えて

1
@OneToMany(fetch = FetchType.LAZY) 
List<Address> address; 

あなたは、コードの上に持っているとしましょう。 あなたが

getAdress().size() 

address.size()を行う場合は、そのためHibernateは1で、一度の代わりに積載1の時にすべての要素をロードしますN + 1つの問題を回避することができます。

+0

しかし '@ ManyToOne'タイプ' List'を持っていない、あなたは 'とそれを混同@ OneToMany' – ipoteka

関連する問題