Java JPA@OneToOne或@ManyToOne两个连接列的延迟获取
我有一个Java JPA@OneToOne或@ManyToOne两个连接列的延迟获取,java,hibernate,jpa,Java,Hibernate,Jpa,我有一个主题实体,该实体应根据问卷版本对应一份问卷。我需要使用lazy fetch 但是,懒散获取不起作用。在获取所有主题时,我看到Hibernate也会执行单独的SQL查询来获取每个主题的问卷 public class Topic { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id", nullable = false) @Access(AccessType.
主题
实体,该实体应根据问卷版本对应一份问卷
。我需要使用lazy fetch
但是,懒散获取不起作用。在获取所有主题时,我看到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(可选=true,fetch=FetchType.LAZY,cascade={CascadeType.ALL})
儿童:
@ManyToOne(可选=true,fetch=FetchType.LAZY,cascade={CascadeType.ALL})
在任意一侧使用级联。您可能希望根据您的要求司法地使用所有这些工具。家长:
@OneToOne(可选=true,fetch=FetchType.LAZY,cascade={CascadeType.ALL})
儿童:
@ManyToOne(可选=true,fetch=FetchType.LAZY,cascade={CascadeType.ALL})
在任意一侧使用级联。您可能希望根据您的要求对所有内容进行司法使用。您解决了这个问题吗?您解决了这个问题吗?在我的要求中,我在父子关系中有一对一关系。我仅在父关系中使用\@OneToOne,并根据您的回答指定\@OneToOne参数,但它不起作用。在我的要求中,我在父子关系中有一对一关系.我仅在父级中使用\@OneToOne,并根据您的回答指定\@OneToOne参数,但它不起作用。