web-dev-qa-db-ja.com

テーブル 'DBNAME.hibernate_sequence'は存在しません

Spring data/jpaを使用したSpringBoot 2.0.1.RELEASEアプリケーションがあります

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

しかし、Amazon Aurora DBで更新を行うと、次のエラーが発生しました。

2018-04-13 09:20 [pool-1-thread-1]エラーohid.enhanced.TableStructure.execute(148)-hi値を読み込めませんでしたcom.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Table ' elbar.hibernate_sequence 'はSun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)に存在しません

保存したいエンティティにこれがあります

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

IDを取得するDBの欠点も回避したいと思います。

13
en Peris

生成時にGenerationType.AUTO hibernateはデフォルトのhibernate_sequence tableを探すので、生成を次のようにIDENTITYに変更します。

 @Id
 @GeneratedValue(strategy = GenerationType.IDENTITY)
 private Long id;
39
Springer F

プレビューブートバージョンから移行する場合に備えて:

application.ymlは、休止状態がhibernate_sequenceエントリ。

spring.jpa.hibernate.use-new-id-generator-mappings

これがBoot 1.xのデフォルトでした

7
Laures

Application.ymlに次の設定を追加します:

spring: jpa: hibernate: use-new-id-generator-mappings: false

または、application.propertiesを使用する場合はこれ

spring.jpa.hibernate.use-new-id-generator-mappings= false

5
Neikat

JPAおよび自動DDL

テーブルスキーマとJavaエンティティとの間でマッピングの不一致が発生した場合、次のことを行います。

  1. スキーマを削除する
  2. spring.jpa.hibernate.ddl-auto=createプロパティのapplication.properties
  3. アプリケーションを再起動します

これにより、エンティティに基づいてスキーマが再作成されます。必要に応じて、作成したテーブルを古いスキーマと比較して、違いを確認できます。

警告:これにより、アプリケーションでエンティティとして指定されたすべてのテーブルのデータが切り捨てられます

1
Chris Maggiulli