データベース接続の設定

今回はJPAを使います。実装としてHibernateを利用します。

まず、Spring Data JPAHibernateH2のライブラリをdependenciesに追加します。これまでと同様に、更新とArtifactの設定を行います。

次に、設定用のクラスを作成します。Thymeleafの設定と同様に、configパッケージ内にDatabaseConfigクラスを作成します。

  • 22行目: @Configurationアノテーションで設定用のクラスであることを示す。
  • 23行目: @EnableTransactionManagementアノテーションでトランザクションの管理を有効にする。
  • 23行目: @EnableJpaRepositoriesアノテーションでJPA Repositoriesを有効にする。Repositoryが格納されるパッケージを引数とする。
  • 27〜35行目: データソースをBean登録する。設定内容はH2の設定と同じにする。
  • 37〜54行目: EntityManagerFactoryをBean登録する。44行目で対象となるentityが含まれるパッケージを指定している。48行目でdialectを設定する。これによりHibernateがデータベースに適した動作をするようになる。49行目でテーブル等の自動生成について設定している。「create-drop」はdeply時に、テーブルを削除(drop)して作りなおす(create)という設定である。他に設定可能な値として、
    none
    何もしない
    create
    テーブルがない場合に作成する
    update
    テーブルの構造が変わった時に変更する
    validate
    テーブルの構造をチェックする

    等がある。開発時にはcreate-drop、create、updateを使い、運用時にvalidateにするといった使い分けをする。

  • 56〜61行目: トランザクションマネージャーをBean登録する。
  • 63〜66行目: 例外を変換するTranslatorをBean登録する。