2017-05-08 15 views
1

2つのエンティティ(ControlStepで構成されたControlTable)との双方向関係では、ControlTepのコレクションを知ってControlTableを要求するさまざまな方法を試しています。私はこの双方向のマッピングを持つことはお勧めしませんが、私は親の各子と各子の親を知る必要があることを知っています。Hibernate select with birectionnal mapping

私はCONTROLTABLEクラスでこのようにそれを構成し:ControlStepクラスの

@OneToMany(mappedBy = "controlTable",cascade = CascadeType.ALL, fetch=FetchType.EAGER) 
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) 
@Fetch(FetchMode.JOIN) 
private Set<ControlStep> controlSteps; 

そして、このように:私は、デフォルトのJPAのクエリのfindAll()を使用する場合

@ManyToOne(optional=false, fetch=FetchType.LAZY) 
@JoinColumn(name="ctrl_table_id", referencedColumnName = "id") 
    private ControlTable controlTable; 

、それを得るために働いていませんControlTableのリスト(または1つだけ)は、子の親の親を再帰的に要求しているため(無限レスポンス) 別の方法では、LAZYの読み込みをすべて行い、HQLクエリで子をフェッチしましたが、結果は同じです。

これらのコレクションを問題なく入手する方法はありますか?

ありがとうございました。

+0

FYI JPAのAPIは、そのような "のfindAll" を持っていません。 Spring Data JPA(!= JPA API)にはこのようなメソッドがあります –

+0

あなたは正しいですが、 "Spring data"は言及しませんでした。ごめんなさい ;) – gomesito

答えて