在JPA一对多关系中,如
学校类:
学生类:
当我们在程序中更新School时,如:
当前School中有学生1,2,3。我们现在要将学生更新为1,3,4.
即重新set School类中的students集合,然后merge(更新)School对象。
但是当你查看数据库时会发现,school表中没有问题,但是student表里有问题了,学生2中关联school的外键为null了。
如果你在建表中约束了该外键不能为空的话,JPA会报sql外键完整性约束异常。
该问题在JPA1.0中没有比较好的解决办法,只好用两种比较不太好的办法解决:
1.在数据库中写一个触发器,清理student表中school外键为null的记录。
2.在更新时,先删除,在保存。这种性能是个严重的