Skip to content

izuno4t/springboot-doma2-example

Repository files navigation

SpringBoot + Doma2 Example Application

SpringBootでDoma2を利用してRDBMS(PostgreSQL、MySQLなど)を利用する実装例です。


このプロジェクトの特徴

Doma2の拡張

  • 未知カラム無視ハンドラの提供: UnknownColumnIgnoreHandlercom.example.doma.jdbc.UnknownColumnIgnoreHandler)。
    • DomaConfigで、本番系(spring.profiles.activedevel 以外)でのみ有効化し、未知カラムを無視して安全に運用。
  • SQLファイルのキャッシュ戦略をプロファイルで切替: devel プロファイルは即時反映のためNoCacheSqlFileRepository、それ以外はGreedyCacheSqlFileRepository
  • doma-spring-boot-starterを基盤に、必要最小限のBeanを追加・上書きして運用特性(ハンドラ/キャッシュ)を調整。

Doma2導入・SpringBoot連携

  • doma-spring-boot-starterで自動設定を利用。DaoはDIで注入、@TransactionalでTx制御、接続はapplication.propertiesで管理。
  • config/DomaConfig.javaで必要に応じてDialect/Repository/HandlerなどのBeanを定義し、AutoConfigurationの上に最小限のカスタマイズを適用。

必要環境

  • Java 21
  • Docker / Docker Compose(PostgreSQL用)
  • Maven 3.6+(./mvnw推奨)

データベースセットアップ手順

# logディレクトリ作成(権限設定必須)
sudo rm -rf log && sudo mkdir -p log/postgres && sudo chown -R $(whoami):$(id -gn) log

# PostgreSQL起動(初期化に約15秒)
docker compose up -d
sleep 15

# スキーマ作成
PGPASSWORD=example psql -h localhost -U example -d example -f schema/create_table.sql

# テーブル確認
PGPASSWORD=example psql -h localhost -U example -d example -c "\\d reservation;"

参考リンク

About

SpringBootでDoma2を利用する場合の設定例です

Topics

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5

Languages