gpt4 book ai didi

java - 如何在插入包含对象集的对象列表期间忽略唯一违规

转载 作者:搜寻专家 更新时间:2023-11-01 03:41:52 26 4
gpt4 key购买 nike

我将 PostgreSQL 和 Spring 数据 JPA 与 Hibernate 一起使用。我有关系 OneToMany 与 orphanRemoval = false 因为我经常添加很多 child 关系。

家长:

@OneToMany(mappedBy = "parent", cascade = { CascadeType.ALL }, orphanRemoval = false, fetch = FetchType.LAZY) public Set getChildren() { return children; }

child :

@ManyToOne @JoinColumn(name = "parent_id") public Parent getParent() { return parent; }

要持久化或合并对象,我使用方法

Iterable< T > save(Iterable< extends T> entities)

形成 CrudRepository。我保存了 parent 名单,其中每个 parent 都包含一组 child 。子表具有唯一约束。如果发生违反约束的情况,我想忽略它并忽略(不坚持)发生冲突的 child ,但我想插入每个不违反约束的 child 。如何做到这一点?

最佳答案

通过异常处理这个问题。

  1. 尝试更新数据库,如果没问题的话就从这里中断。捕获 UniqueViolationException 并找到 JDBCException。向上转换到您合格的数据库异常并找到损坏的子项。

  2. 从父项中移除子项。

  3. 转到1。

关于java - 如何在插入包含对象集的对象列表期间忽略唯一违规,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12468698/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com