【问题标题】:Unique Constraint Violated: Eclipselink JPA SecuenceGenerator, Cascade Persist with Oracle违反唯一约束:Eclipselink JPA SecuenceGenerator、Cascade Persist with Oracle
【发布时间】:2018-06-27 19:46:38
【问题描述】:

我收到以下 eclipselink 错误:

我有一个带有 JPA SequenceGenerator 的实体,在单元中,如果连接的用户很少,用户测试它可以正常工作,但如果用户并发量更大,则随机出现以下错误:

org.eclipse.persistence.exceptions.DatabaseException Internal Exception: java.sql.SQLIntegrityConstraintViolationException:
ORA-00001: unique constraint violated Error Code: 1 Call: INSERT INTO LIST_DOCUMENT (COD_LIST_DOC, APPLY, COD_DOC, COD_REPO, NAME, ROUTE_REPO, SINI_SOL_SAI_SOLICIT, SINIESTRO_FEC_REP) VALUES (?,?,?,?,?, ?,?,?)

在其他项目中,我看到过使用触发器、停用缓存、简单重新部署或使用 sql 语句从 BD 读取序列的类似情况的解决方案,但我问是否有人有任何其他想法,因为通过正常的 jpa 操作这不应该发生。

这很严重,因为它会影响我们的验收测试。

这是id的注解。

@Id
@Column(name = "COD_LIST_DOC")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "secListDoc")
@SequenceGenerator(name = "secListDoc", sequenceName = "SEC_LIS_DOCUMENTO", initialValue = 1, allocationSize = 1)
private BigDecimal codListDoc;

这是序列的.sql

CREATE SEQUENCE "INDEMNITY". "SEC_LIS_DOCUMENT" MINVALUE 1 MAXVALUE 999999999999999 INCREMENT BY 1 START WITH 261 NOCACHE ORDER NOCYCLE;

这是序列的下一个值: select SEC_LIS_DOCUMENTO.nextval from dual; 它返回 -> 261

在表格中插入的对象 id 是 260。

Eclipselink 版本: org.eclipse.persistence org.eclipse.persistence.jpa 2.6.4

我正在使用:

  • Weblogic 版本 12.1.1.0.12
  • jdk 1.7
  • Oracle 11.2.0.3

作为附加信息,它是一个作为父亲级联子级持续存在的列表

em.persist (obj); 

@OneToMany (mappedBy = "SiniestrolistaDocumentoSiniestroFk", cascade = CascadeType.PERSIST)
@PodamExclude
private List <Document List> SinStroFkesDocument list;

【问题讨论】:

    标签: oracle jpa sequence cascade unique-constraint


    【解决方案1】:

    一个序列将是独一无二的(不一定是无缝的),所以我不会责怪它。

    也许您应该首先检查由该序列填充的列的 MAX 值,然后使用 MAX+1 作为序列的 MINVALUE 重新创建序列。

    此外,检查唯一约束是什么样的。它不必在单个列上强制执行,也许它设置为与您想象的不同的列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多