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查詢獲取孩子,但結果是一樣的。
對於如何在沒有問題的情況下獲得這些集合有什麼想法嗎?
非常感謝您提前
FYI JPA的API有沒有這樣的 「的findAll」。 Spring Data JPA(!= JPA API)確實有這樣的方法 –
你是對的,我錯過了提到「Spring數據」。對不起;) – gomesito