gpt4 book ai didi

java - FetchType.LAZY 是否获取列表中的任何内容或者列表为空

转载 作者:行者123 更新时间:2023-12-01 18:00:24 31 4
gpt4 key购买 nike

假设我有一个关联,

class Department{

......

@OneToMany(fetch = FetchType.LAZY)
private List<Employee> employees;

}

现在,当我获取部门时,它会获取员工列表中的任何内容还是完全为空。

员工对象的标识符是否会加载到列表中,比如我有员工对象属性,如下所示:-

Employee{
id
name
doj
....

}

Lazy object like {
id -> 111
name -> null
doj -> null

}

现在,当我初始化员工对象或使用 getters 访问它的属性时,该对象将从数据库中使用 id 作为标识符加载...??

最佳答案

不是真正的集合类(例如ArrayList),而是将不同的List实现注入(inject)到您的字段中(PersistentList)。根据对该集合的调用和惰性策略,它将执行不同的操作:

  • 如果lazy="lazy"调用任何集合方法都会使集合完全加载
  • 如果lazy="extra",则调用某些函数将触发 SQL,而不加载集合。例如。 list.size() 将触发select count...。当获取第一个元素时,只会选择该元素。这可能适合大型集合。请注意,此行为还可能取决于集合类型 - 无序集合无论如何都会加载所有元素。

关于java - FetchType.LAZY 是否获取列表中的任何内容或者列表为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41455077/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com