[英]Lazy fetch for JPA @OneToOne or @ManyToOne Two Join Columns
I have a Topic
entity that should correspond to one Questionnaire
based on questionnaire version. 我有一个
Topic
实体,应根据问卷版本与一个Questionnaire
相对应。 I need to use lazy fetch. 我需要使用懒惰获取。
However, lazy fetch doesn't work. 但是,懒惰获取不起作用。 When getting all Topics, I see Hibernate also do individual SQL queries to fetch the questionnaire for each topic.
当获得所有主题时,我看到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;
How do I get lazy fetch working in this case? 在这种情况下,如何获取懒惰的访存? I need OneToOne here, and I've tried both OneToOne and ManyToOne.
我在这里需要OneToOne,并且已经尝试过OneToOne和ManyToOne。
Parent: @OneToOne(optional = true, fetch = FetchType.LAZY, cascade = {CascadeType.ALL})
父级:
@OneToOne(optional = true, fetch = FetchType.LAZY, cascade = {CascadeType.ALL})
Child: @ManyToOne(optional = true, fetch = FetchType.LAZY, cascade = {CascadeType.ALL})
子级:
@ManyToOne(optional = true, fetch = FetchType.LAZY, cascade = {CascadeType.ALL})
Use Cascading either side. 两侧均使用级联。 You may want to judicially use ALL as per your requirement.
您可能需要根据需要合法使用ALL。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.