簡體   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