Jpa 如果;“删除”为“真”;如果设置了,并且父FK列设置为Not Null为false,则当子项被持久化时,会将其删除吗?
让我从以下位置复制我的参考: 关系中的孤儿移除 当从关系中删除一对一或一对多关系中的目标实体时,通常需要将删除操作级联到目标实体。这样的目标实体被视为“孤立实体”,并且“孤立移除”属性可用于指定应移除孤立实体。例如,如果订单有多个行项目,并且其中一个已从订单中删除,则删除的行项目将被视为孤立项。如果将删除设置为true,则从订单中删除行项目时将删除行项目实体 @OneToMany和@oneToOne中的孤儿移除属性采用布尔值,默认情况下为false 以下示例将从关系中删除孤立客户实体时,将删除操作级联到该孤立客户实体:Jpa 如果;“删除”为“真”;如果设置了,并且父FK列设置为Not Null为false,则当子项被持久化时,会将其删除吗?,jpa,Jpa,让我从以下位置复制我的参考: 关系中的孤儿移除 当从关系中删除一对一或一对多关系中的目标实体时,通常需要将删除操作级联到目标实体。这样的目标实体被视为“孤立实体”,并且“孤立移除”属性可用于指定应移除孤立实体。例如,如果订单有多个行项目,并且其中一个已从订单中删除,则删除的行项目将被视为孤立项。如果将删除设置为true,则从订单中删除行项目时将删除行项目实体 @OneToMany和@oneToOne中的孤儿移除属性采用布尔值,默认情况下为false 以下示例将从关系中删除孤立客户实体时,将删除操
@OneToMany(mappedBy="customer", orphanRemoval="true")
public List<Order> getOrders() { ... }
@OneToMany(mappedBy=“customer”,orphan=“true”)
公共列表getOrders(){…}
因此,它建议如果我们有孤立删除=true
,当我们删除@OneToOne
或@OneToMany
的关系时,孤立将被删除。
现在,如果在child表中,parent的FK列被设置为NN=false
,或者,我们可以在不指明其父的情况下插入child,插入时没有关系。那么,是否可以成功插入子对象
或者,换句话说,我是否可以理解,
orphanRemoving=true
禁止DB中没有父级的任何子级?将创建行,因此?插入/持久化操作不必对删除执行任何操作。它不会自动将相应的子实体插入反向集合,该反向集合包含关系反向端的子实体列表,除非您自己手动显式地使该关系双向,而JPA提供者对此不负责。此外,删除
忽略基础数据库中的表关系。因此,您的意思是,当我们插入时,该属性不起任何作用?是的。您必须自己手动将所有者添加到反向集合中。(JPA提供商不必维护双向关系,尽管某些提供商可能支持此功能-JPA规范中未指定此功能)。好的,请回答您的意见,我接受。我理解你的意思是“是的,它什么都不做。”行将被创建,所以?插入/持久化操作不必对删除执行任何操作。它不会自动将相应的子实体插入反向集合,该反向集合包含关系反向端的子实体列表,除非您自己手动显式地使该关系双向,而JPA提供者对此不负责。此外,删除
忽略基础数据库中的表关系。因此,您的意思是,当我们插入时,该属性不起任何作用?是的。您必须自己手动将所有者添加到反向集合中。(JPA提供商不必维护双向关系,尽管某些提供商可能支持此功能-JPA规范中未指定此功能)。好的,请回答您的意见,我接受。我理解你的意思是“是的,它什么也没做。”