以前のバージョンからデータをロードする空のSpringブートアプリケーションがあります。このデータには主キーが含まれています。したがって、私はLiquibase loadDataメソッドを使用します。liquibaseのインポート後にHibernateのシーケンスが更新されない
<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;
これは期待どおり動作しますが、Hibernateシーケンスは更新されません。新しいオブジェクトを保存する場合は、重複する主キーが生成されます。
私は間違っていますか?この問題への
乾杯、ダニエル
「GenerationType.AUTO」では、主キーの生成に使用する戦略とデータベースに依存する戦略をJPAが決定します。どのデータベースを使用していますか? – Jens
推測: 'GenerationType.AUTO'はプライマリキーのシーケンスを持つテーブルにつながりますが、これもまだハイバネートによって開始されます。あなたがliquibaseを使用する場合、休止状態はなく、主キーは更新されません。 (私は、Oracleのような実際のシーケンスについては言及していませんが、主キーを格納するために使用される純粋なテーブルです。私はmySQLがこのようなことをしていると思います)。 – Jens
私はpostgresql 9.4+を使用しています –