liquibase 导入后 Hibernate 序列未更新

Dan*_*ber 1 hibernate jpa liquibase spring-boot

我有一个空的 Spring Boot 应用程序,我想在其中加载以前版本的数据。该数据已经包含主键。因此我使用 Liquibase loadData 方法:

<column name="id" type="bigint" autoIncrement="${autoIncrement}">
    <constraints primaryKey="true" nullable="false"/>
</column>
<loadData tableName="point_of_interest" separator=";" file="classpath:config/liquibase/data/public.poi.csv">
</loadData>

// the java annotations
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
Run Code Online (Sandbox Code Playgroud)

这按预期工作,但 Hibernate 序列未更新。如果我想保存新对象,这会导致重复的主键。

我究竟做错了什么?

干杯,丹尼尔

Dan*_*ber 5

我针对这个问题的解决方案(从 jHipster 团队复制)是增加休眠序列的起始值。这允许您插入 ID < startValue的所有数据,因此不会发生冲突:

<changeSet id="00000000000000" author="jhipster" dbms="postgresql,oracle">
    <createSequence sequenceName="hibernate_sequence" startValue="20000" incrementBy="1"/>
</changeSet>
Run Code Online (Sandbox Code Playgroud)