我使用PostgreSQL和Spring数据JPA和Hibernate。我和OrphanRemoval = false有关系OneToMany,因为我经常在关系中添加很多子项。
父:
@OneToMany(mappedBy =“parent”,cascade = {CascadeType.ALL},orphanRemoval = false,fetch = FetchType.LAZY) public Set getChildren(){ 回归孩子; }
子:
@ManyToOne @JoinColumn(name =“parent_id”) public Parent getParent(){ 回归父母; }
要保持或合并对象我使用方法
可迭代< T>保存(Iterable< extends T> entities)
表格CrudRepository。我保存父母列表,其中每个父母都包含一组孩子。子表具有唯一约束。如果发生约束违规,我想忽略那个并且忽略(不要坚持)孩子哪些案件viloations但我想插入每个不违反案件约束的孩子。怎么做?
答案 0 :(得分:1)
通过例外处理这个脏。
尝试更新数据库,如果在此处稍作休息。 捕获UniqueViolationException并找到JDBCException。升级到您的合格数据库异常并找到破碎的孩子。
从家长中删除子女。
转到1.
答案 1 :(得分:0)
干净的方法是过滤将产生唯一违规异常的实体。 过滤完该实体后,您可以保存好实体。
应该使用例外情况:例外情况。