【异常】在一对多的配置中,配置了级联cascade=“all-delete-orphan”,但是依然报错,异常信息是多的一端的引用一的一端的字段(相当于外键的那个字段)r_id不能为null。
【分析】cascade=“all-delete-orphan”这样的配置是没有错误的,inverse也是一的一端为false,这都是没有问题的。可是为什么会出现这个问题呢?仔细看下hibernate输出的sql语句,第一句是将r_id设置为null,然后才是删除数据和关联数据。在第一句执行的的时候就出现了异常,后两句没打印出来。由此分析,原因是我在数据库创建时为r_id加了not null约束,造成hibernate无法解除关联关系
【总结】外键字段的not null约束可造成hibernate级联失败
希望能帮到有同样问题的大家