在hibernate3中配置lazy =“true”的等效方法是什么。?
获取对象时,我将使用fetch概念获取关联对象。因此,在映射中我需要指定它。
答案 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映射,默认情况下关联是懒惰的。