lazy =“true”,对于hibernate 3中的多对一等值

时间:2010-08-26 10:07:14

标签: hibernate

在hibernate3中配置lazy =“true”的等效方法是什么。?

获取对象时,我将使用fetch概念获取关联对象。因此,在映射中我需要指定它。

1 个答案:

答案 0 :(得分:2)

我不确定我是否理解了这个问题,但如果您正在寻找使用注释的等效词,那么ManyToOne注释会允许fetch属性。从JPA 1.0规范:

  

9.1.22 ManyToOne Annotation

     

ManyToOne注释定义了一个   单值关联到另一个   具有多对一的实体类   多重性。通常不是这样   必须指定目标实体   明确,因为它通常可以   从对象的类型推断出来   被引用。

     

表15列出了注释元素   可以为ManyToOne指定   注释及其默认值。

     

cascade元素指定集合   可级联操作的   传播到关联实体。   可级联的操作是   由CascadeType枚举定义:

public enum CascadeType { ALL, PERSIST, MERGE, REMOVE, REFRESH}; 
     

值cascade = ALL相当于   cascade = {PERSIST,MERGE,REMOVE,   REFRESH}。

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

EAGER战略是一项要求   持久性提供程序运行时   相关实体必须热切期待   牵强。 LAZY战略是一个提示   到持久性提供程序运行时   相关实体应该是   它是第一次懒洋洋地取出来   访问。实施是   允许急切地取   LAZY的协会   策略提示已被指定。

所以你可以这样做:

@ManyToOne(fetch=FetchType.LAZY)
Foo foo

使用Hibernate的XML映射,默认情况下关联是懒惰的。

参考