簡體   English   中英

休眠延遲加載問題

[英]Hibernate Lazy Loading Issue

我在Hibernate 5中映射了這個實體

class A {
    private String code;
    private B child;

    @LazyToOne(LazyToOneOption.PROXY)
    @ManyToOne(fetch=FetchType.LAZY)
    @NotFound(action=NotFoundAction.IGNORE)
    @JoinColumns({...})
    public B getChild() { ... }
}

加載A的查詢是:

from A where a.code like :q

通過這種配置,Hibernate在A和B實體上進行選擇。 我不希望它加載B但僅加載A

我想念什么?

我有同樣的問題,這是由Hibernate忽略了FetchType.LAZY(如果定義了NotFoundAction.IGNORE)引起的。

經過一番谷歌搜索后,我找到了一種解決方法: http : //chekkal.blogspot.com/2012/09/hibernate-lazy-loading-and-notfound.html

public FieldType getField() {
    if(!Hibernate.isInitialized(field)) {
        try {
            Hibernate.initialize(field);
        }catch(EntityNotFoundException one) {
            field=null;
        }
    }
    return field;
}

在Hibernate 5.4.2中,該異常已更改為EntityNotFoundException,但該替代方法似乎對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM