【问题标题】:Hiberate JPA - sequences becoming negative when record is insertedHibernate JPA - 插入记录时序列变为负数
【发布时间】:2018-02-24 02:42:11
【问题描述】:

环境:

Database - Oracle 12c
Hibernate - 5.2.10Final 
JPA - version 2.0

我们正在使用 entityManager.merge 来插入对象。序列的值是正值,但当插入 db 时,它变为负值。似乎无法找到造成这种情况的原因。

这是我们的实体对象id属性字段的休眠设置,带有序列设置

@Id
@SequenceGenerator(name = "someSequence", sequenceName = "SOME_SEQUENCE")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "someSequence")
@Column(name = "RECORD_ID", unique = true, nullable = false, precision = 10, scale = 0) 
private String recordId;

有人可以帮忙吗?谢谢。

【问题讨论】:

    标签: hibernate jpa jpa-2.0 hibernate-mapping hibernate-jpa


    【解决方案1】:

    SequenceGenerator注解中有一个名为allocationSize的变量。此大小默认为50。这意味着 Hibernate 将保留 50 个 id,并且不需要为每次插入检索新的 id。所以你需要:

    • allocationSize 设置为与someSequence incrementBy 值相同的值。
    • 在您的 someSequence 上设置 incrementBy 值以匹配 allocationSize 值。

    那么你的问题就会消失。

    【讨论】:

      猜你喜欢
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-26
      • 2017-04-03
      • 1970-01-01
      • 1970-01-01
      • 2016-01-04
      相关资源
      最近更新 更多