2017-05-08 110 views
1

在雙向關係beetwen兩個實體(一個ControlTable由ControlSteps組成),我只是通過不同的方式嘗試通過了解它的集合ControlSteps來請求一個ControlTable。我知道不建議有這種雙向映射,但我需要知道父母的每個孩子,以及每個孩子的父母。休眠選擇與雙向映射

我配置它像這樣在ControlTable類:

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

而且像這樣ControlStep類:

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

當我使用默認的JPA查詢的findAll(),它不工作得到ControlTable的列表(或者只有一個),因爲它遞歸地請求父級的父級(無限響應)。 另一種方法是,將所有內容放在LAZY加載中,用HQL查詢獲取孩子,但結果是一樣的。

對於如何在沒有問題的情況下獲得這些集合有什麼想法嗎?

非常感謝您提前

+0

FYI JPA的API有沒有這樣的 「的findAll」。 Spring Data JPA(!= JPA API)確實有這樣的方法 –

+0

你是對的,我錯過了提到「Spring數據」。對不起;) – gomesito

回答