Hibernate自己手动管理级联操作。而且,如果您要在数据库上进行级联,而不是在Hibernate中声明它们(出于性能问题),则在某些情况下可能会出错。这是因为Hibernate将实体存储在其会话缓存中,所以它不会知道数据库级联删除某些内容。
当您使用二级缓存时,情况甚至更糟,因为此缓存的生存期比会话长,并且只要会话中存储了较长的旧值,db-side的此类更改将对其他会话不可见。
我已经阅读了一些Hibernate的资料(确实很不愉快的经验),并且我怀疑在任何情况下都可以在数据库侧管理级联-Hibernate设计做出的太多假设与DB
Reality不兼容。



