在JPA/Hibernate中,即使在一对多关系中使用了orphanRemoval = true,孤儿对象仍然会保留在数据库中。orphanRemoval是一种级联操作,它的作用是在父对象中移除子对象时,同时也将子对象从数据库中删除。
然而,orphanRemoval只能确保在父对象中移除子对象时,子对象会被删除。如果直接删除子对象而不通过父对象进行操作,孤儿对象仍然会保留在数据库中。这是因为orphanRemoval只在父对象的生命周期内起作用,而不会对孤儿对象进行管理。
为了完全删除孤儿对象,可以使用额外的操作,例如手动删除或者编写相应的逻辑来处理孤儿对象的删除。在JPA/Hibernate中,可以通过调用EntityManager的remove方法来删除孤儿对象,或者使用JPQL语句执行删除操作。
总结起来,即使在一对多关系中使用orphanRemoval = true,孤儿对象仍然会保留在数据库中。为了完全删除孤儿对象,需要进行额外的操作来处理。
领取专属 10元无门槛券
手把手带您无忧上云