【问题标题】:Hibernate Batch Insert 150 records OracleHibernate批量插入150条记录Oracle
【发布时间】:2017-07-23 21:56:55
【问题描述】:

我有一个父类如下

@Entity
@Table(name = "parent")
public class Parentimplements Serializable, Cloneable {

@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "parent-seq")
@SequenceGenerator(name = "parent-seq", sequenceName = "parent_sequence")
private Long id;

@OneToMany(mappedBy = "parent")
@Cascade({CascadeType.PERSIST, CascadeType.MERGE, CascadeType.ALL})
@Sort(type = SortType.NATURAL)
private SortedSet<Child> requirements = new TreeSet<Child>();

并尝试将父级插入到具有 150 个子级的 oracle 数据库中。使用 hibernate.jdbc.batch_size=50,在 50 次插入后未找到其抛出的完整性违规父键。将批量大小增加到 150 后,在 150 之后插入其抛出的相同异常,包括 jdbc 批量更新异常。

【问题讨论】:

  • 请添加保存方法

标签: java hibernate jdbc oracle11g


【解决方案1】:

想到两个解决方案:

  1. 先插入父记录
  2. 使用 DEFERRABLE 约束

【讨论】:

    猜你喜欢
    • 2019-06-19
    • 2020-03-18
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-29
    • 1970-01-01
    • 2011-02-15
    相关资源
    最近更新 更多