Development Java

HibernateでJPAエンティティをスキャンしてスキーマを作成する方法

投稿日:

概要

先日、JPA Entityクラスをスキャンしてスキーマを生成・削除するコードを書く必要があったので、そのコードをまとておこうと思います。

コードを作成したのは以下の環境です。

  • Java 8
  • JPAのプロバイダはHibernate

依存関係

まずは、必要なライブラリを追加します。

このライブラリを使って、 @Entity アノテーションが付いたクラスをスキャンしています。

Javaコード

次は実際のコードです。

スキーマ作成も削除もコードはほとんど変わりません。違うところといえば、 SchemaExport#export メソッドの3番目と4番目のパラメータだけです。executeメソッドのシグニチャは以下のようになっています。

3番目の引数はjustDropとなっていますので、ここをtrueにすればスキーマが削除されます。4番目はjustCreateなので、生成するときにはtrueにします。

上のサンプルではSpring Bootを使ってコンテナの起動時と終了時にスキーマの生成と削除を行っていますが、Springを使わなくても任意のタイミングでメソッドを呼び出すこともできます。

-Development, Java

Copyright© 技術系のメモ , 2019 All Rights Reserved.