[英]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.