[英]Lazy fetch for JPA @OneToOne or @ManyToOne Two Join Columns
我有一個Topic
實體,應根據問卷版本與一個Questionnaire
相對應。 我需要使用懶惰獲取。
但是,懶惰獲取不起作用。 當獲得所有主題時,我看到Hibernate還執行單獨的SQL查詢以獲取每個主題的調查表。
public class Topic {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false)
@Access(AccessType.PROPERTY)
private long id;
@Column(name = "questionnaire_version")
private String questionVer;
@ManyToOne(optional = true, fetch = FetchType.LAZY)
@JoinColumns({
@JoinColumn(name = "id", referencedColumnName = "topic_id",
insertable = false, updatable = false),
@JoinColumn(name = "questionnaire_version", referencedColumnName = "version",
insertable = false, updatable = false)
})
@Access(AccessType.PROPERTY)
private Questionnaire questionnaire;
在這種情況下,如何獲取懶惰的訪存? 我在這里需要OneToOne,並且已經嘗試過OneToOne和ManyToOne。
父級: @OneToOne(optional = true, fetch = FetchType.LAZY, cascade = {CascadeType.ALL})
子級: @ManyToOne(optional = true, fetch = FetchType.LAZY, cascade = {CascadeType.ALL})
兩側均使用級聯。 您可能需要根據需要合法使用ALL。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.