Hibernate EAGER fetch 和级联类型 all 有什么区别

sag*_*ede 4 java orm hibernate jpa fetch

请解释hibernate Eager fetching 和cascade-type all 之间的区别。

在这两种配置中,我们都可以加载与其父级关联的子对象,那么 in.

Vir*_*ade 6

很简单:考虑两个实体 1. Department 和 2. Employee ,它们具有一对多映射。即一个部门可以有多个员工 级联 = CascadeType.ALL,这实质上意味着 DepartmentEntity 上发生的任何更改都必须级联到 EmployeeEntity以及。如果您保存一个 Department ,那么所有关联的 Employee 也将保存到数据库中。如果您删除一个部门,则与该部门关联的所有员工也将被删除。
Cascade-type 都是 PERSIST、REMOVE、MERGE 和 REFRESH 级联类型的组合。 级联类型 All 的示例

获取类型 Eager 本质上与 Lazy.Lazy 相反,后者是所有 Hibernate 注释关系的默认获取类型。当您使用 Lazy fetch 类型时,Hibernate 不会加载该特定对象实例的关系。默认情况下,Eager 将加载与 Hibernate 加载的特定对象相关的所有关系单击此处查看示例。