JPA::孤立删除和惰性集合
假设我有一个实体A,其中包含OneToMany的Bs集合,其中FetchType-EAGER和孤儿删除设置为true。当我调用EntityManager#merge对已分离并从其集合中删除了一些B元素(分离时)的a对象时,相应的行(其实体现在从集合中丢失)将从数据库中删除(在JPA/Hibernate中)JPA::孤立删除和惰性集合,jpa,Jpa,假设我有一个实体A,其中包含OneToMany的Bs集合,其中FetchType-EAGER和孤儿删除设置为true。当我调用EntityManager#merge对已分离并从其集合中删除了一些B元素(分离时)的a对象时,相应的行(其实体现在从集合中丢失)将从数据库中删除(在JPA/Hibernate中) 在懒惰的集合的情况下,这会是怎样的结果?当要求EntityManager合并修改后的a对象时,它如何区分从集合中显式删除的B实体与由于延迟获取类型而从未获取的B实体之间的区别?JPA实现必须保
在懒惰的集合的情况下,这会是怎样的结果?当要求EntityManager合并修改后的a对象时,它如何区分从集合中显式删除的B实体与由于延迟获取类型而从未获取的B实体之间的区别?JPA实现必须保留有集合的标志已初始化或仍处于惰性状态 因此,如果合并以前分离的实体,则合并操作将检查集合,如果仅初始化了集合,则它将枚举内容,以查找对从数据库获取的实体所做的更改 但是,如果实例化一个新实例并将其传递给merge,则集合将被视为已初始化,如果集合为空,则JPA将删除所有集合项
请停下来试试新的JPA实现,Batoo JPA-比市场上当前的JPA实现快15倍以上。非常清楚。JPA规范中是否定义了这种行为?没有详细说明。但这完全是从规范中推断出来的。这是否意味着将集合设置为null不会触发级联?