Java hibernate-多对多关系中的级联删除

Java hibernate-多对多关系中的级联删除,java,hibernate,orm,many-to-many,Java,Hibernate,Orm,Many To Many,我有一个SpringMVC应用程序,它使用hibernate处理mysql数据库。我有acl和acl\u组表格。这两个表与联接表有Many-to-Many关系。以下是实体类的结构: Acl: public class Acl implements Serializable{ ... @ManyToMany(mappedBy = "aclCollection",fetch = FetchType.LAZY) private Collection<AclGroup> a

我有一个SpringMVC应用程序,它使用hibernate处理mysql数据库。我有
acl
acl\u组
表格。这两个表与联接表有
Many-to-Many
关系。以下是实体类的结构:

Acl:

public class Acl implements Serializable{
   ...
   @ManyToMany(mappedBy = "aclCollection",fetch = FetchType.LAZY)
   private Collection<AclGroup> aclGroupCollection;

  //Setter and getter
}

您告诉Hibernate,AclGroup上的所有操作都必须级联到其ACL集合。因此,当您删除AclGroup时,Hibernate也会删除其所有ACL。由于这是一个多对多关联,正在删除的ACL被其他ACL组引用,因此会导致约束冲突

删除组时删除组的所有acl是没有意义的,因为其他组也包含并且必须继续包含acl


删除
cascade=CascadeType.ALL
,一切正常。

另一个问题完全不同。请提出另一个详细的问题,显示相关的Spring方法和完整的堆栈跟踪。
public class AclGroup implements Serializable{
   ...
    @JoinTable(name = "acl_group_acl", joinColumns = {
       @JoinColumn(name = "acl_group_id", referencedColumnName = "id")}, inverseJoinColumns = {
       @JoinColumn(name = "acl_id", referencedColumnName = "id")})
    @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    private Collection<Acl> aclCollection;
    //Setter and getter
}
org.springframework.http.converter.HttpMessageNotWritableException: Could not write content: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer