Java 休眠外键映射?

Java 休眠外键映射?,java,hibernate,foreign-keys,foreign-key-relationship,Java,Hibernate,Foreign Keys,Foreign Key Relationship,我有一个实体A,其外键为实体B: entity A --> id, entity_a_name, foreign_key_entity_B 当我打电话时 return session.createCriteria(EntityA.class).list(); 我在实体A中也得到了entityB的属性。如何使其成为延迟加载,以便在不需要时不会加载enityB?从您的描述中不清楚您所谈论的是什么类型的关系,但如果是多对一或一对一,事情就不那么简单了。如果A.entityB可为null

我有一个实体A,其外键为实体B:

entity A --> id, entity_a_name, foreign_key_entity_B 
当我打电话时

return session.createCriteria(EntityA.class).list();  

我在实体A中也得到了entityB的属性。如何使其成为延迟加载,以便在不需要时不会加载enityB?

从您的描述中不清楚您所谈论的是什么类型的关系,但如果是多对一或一对一,事情就不那么简单了。如果
A.entityB
可为null(非可选),则强制Hibernate加载关系以查看属性是否为null。只有将关系标记为非可选(在这种情况下,Hibernate假设它不是null,因为它是一个错误),才能使其延迟加载

  • @LazyCollection:定义@manytomy上的lazyness选项 和@OneToMany协会。 LazyCollectionOption可能是真的 (集合是惰性的,将被删除。) 在访问其状态时加载), 额外(集合是惰性的 所有的行动都会试图 避免集合加载,这 特别适用于大型 加载所有 元素)和FALSE (协会不懒惰)

  • @获取:定义用于加载 协会。可以选择FetchMode (当 需要加载关联), 子选择(仅适用于 集合,使用子选择 策略-请参阅 Hibernate的参考文档 更多信息)或加入(使用 SQL连接以加载关联 加载所有者实体时)。参加 覆盖任何惰性属性(作为 通过联接加载的关联 战略不能懒惰)