繁体   English   中英

JPA @OneToOne或@ManyToOne的延迟获取两个连接列

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM