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 序列未更新。如果我想保存新对象,这会导致重复的主键。
我究竟做错了什么?
干杯,丹尼尔
我针对这个问题的解决方案(从 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)
| 归档时间: |
|
| 查看次数: |
6654 次 |
| 最近记录: |