簡體   English   中英

休眠:渴望僅獲取指定的字段

[英]Hibernate: Eager Fetch Only Specified Fields

有沒有一種方法可以指定在hibernate / JPA @ManyToOne-FetchType.EAGER中急切要獲取的唯一字段?

就像是:

@ManyToOne(fetch=FetchType.EAGER, eagerFields={"id","name"})
private Company company;

JPA 2.0規范沒有定義您要實現的@ManyToOne ,因為@ManyToOne注釋的定義如下(請參閱JPA 2.0規范的11.1.26節 ):

public @interface ManyToOne {
    Class targetEntity() default void.class;
    CascadeType[] cascade() default {};
    FetchType fetch() default EAGER;
    boolean optional() default true;
}

如果為要延遲加載的Company實體的字段指定@Basic(fetch = FetchType.LAZY) ,則可以實現僅對選定字段進行@Basic(fetch = FetchType.LAZY)加載的操作。 不建議將BUT用於關聯字段以外的其他字段,因為它取決於提供者實現的擺布,如以下摘錄所示:

EAGER策略是對持久性提供程序運行時的要求,必須熱切地獲取數據。 LAZY策略向持久性提供程序運行時提供了提示,即首次訪問數據時應延遲獲取數據。 該實現被允許急切地獲取已為其指定LAZY策略提示的數據。 特別是,懶惰獲取可能僅適用於使用基於屬性的訪問的基本映射。

暫無
暫無

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

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