Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA@OneToOne或@ManyToOne两个连接列的延迟获取_Java_Hibernate_Jpa - Fatal编程技术网

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参数,但它不起作用。