JPA 序列生成器说增量大小与 DB 中的值不同

Posted

技术标签:

【中文标题】JPA 序列生成器说增量大小与 DB 中的值不同【英文标题】:JPA sequence generator says increment size differs from the value in DB 【发布时间】:2020-10-14 20:20:21 【问题描述】:
@Table(name = "CACHING_DATA")
@Entity
public class CachingData implements Serializable 
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CACHING_SEQUENCE")
    private Long id;
    private String protocolecode;
    private String uuid;

我有上面的实体类和oracle序列。但我收到以下错误。

原因:org.hibernate.MappingException:实体映射中[CACHING_SEQUENCE]序列的增量大小设置为[50],而关联的数据库序列增量大小为1。

【问题讨论】:

删除并重新创建数据库,可能会有帮助 【参考方案1】:

序列可以使用 allocationSize = 1

@SequenceGenerator(name = "SomeNameForTheGenerator", sequenceName = "CACHING_SEQUENCE", allocationSize = 1)

这里是 samish 问题:org.hibernate.MappingException: The increment size of the sequence is set to [10] in the entity mapping while ... size is [1]

【讨论】:

以上是关于JPA 序列生成器说增量大小与 DB 中的值不同的主要内容,如果未能解决你的问题,请参考以下文章

MySQL:创建具有自动增量的表并将生成的值与同一表的不同列的值连接起来

当为 Postgres DB 的属性 spring.jpa.hibernate.ddl-auto 提供更新值时,Hibernate 不会生成序列

基于外键的增量字段(JPA、Hibernate、Oracle DB)

Laravel - Cockroach DB - 自动增量正在生成 UUID

oracle DB 中的自动增量替代方案

您如何在不同的项目中将 JPA 对象与 GWT 一起使用?