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クエリで子をフェッチしましたが、結果は同じです。
これらのコレクションを問題なく入手する方法はありますか?
ありがとうございました。
FYI JPAのAPIは、そのような "のfindAll" を持っていません。 Spring Data JPA(!= JPA API)にはこのようなメソッドがあります –
あなたは正しいですが、 "Spring data"は言及しませんでした。ごめんなさい ;) – gomesito