我使用JPA + Hibernate。
我有2个实体(Parent,Child),它们之间有OneToMany连接。我向父母添加了一个子列表,如下所示:
parent.setChildrent(childrenSet);
getEntityManager().merge(parent);
如果其中一个子实体包含无效值(例如,字符串太长),则其插入失败,整个事务失败。
有没有办法忽略/记录错误,并为其余的孩子继续合并?
我知道我可以逐个添加孩子,但是有更好的解决方案吗?
谢谢。答案 0 :(得分:1)
如果其中一个子实体包含无效值(例如,字符串太长),...
你不应该通过处理数据库错误来处理这样的问题。 在开始向数据库执行事务之前,请尝试在应用程序中过滤太长的字符串或无效值。
如果存在数据库错误,则执行回滚并在撤消此事务时执行所有更改。
祝你好运