SpringBootでDoma2を利用してRDBMS(PostgreSQL、MySQLなど)を利用する実装例です。
- 未知カラム無視ハンドラの提供:
UnknownColumnIgnoreHandler(com.example.doma.jdbc.UnknownColumnIgnoreHandler)。DomaConfigで、本番系(spring.profiles.activeがdevel以外)でのみ有効化し、未知カラムを無視して安全に運用。
- SQLファイルのキャッシュ戦略をプロファイルで切替:
develプロファイルは即時反映のためNoCacheSqlFileRepository、それ以外はGreedyCacheSqlFileRepository。 doma-spring-boot-starterを基盤に、必要最小限のBeanを追加・上書きして運用特性(ハンドラ/キャッシュ)を調整。
doma-spring-boot-starterで自動設定を利用。DaoはDIで注入、@TransactionalでTx制御、接続はapplication.propertiesで管理。config/DomaConfig.javaで必要に応じてDialect/Repository/HandlerなどのBeanを定義し、AutoConfigurationの上に最小限のカスタマイズを適用。
- Java 25
- 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;"Docker が利用可能な環境で、PostgreSQL コンテナを自動起動してテストを実行できます。 ローカル実行用の docker-compose 環境はテストには不要です。
# テスト実行(Testcontainers)
./mvnw testDB接続情報は指定不要です(Testcontainersが動的に設定します)。
# 利用可能なアップデートを確認
./mvnw versions:display-dependency-updates
# プロパティで管理されている依存関係のアップデート確認
./mvnw versions:display-property-updates
# 依存関係を最新版に更新(バックアップ作成)
./mvnw versions:use-latest-versions
# 特定の依存関係のみ更新
./mvnw versions:use-latest-versions -Dincludes=org.seasar.doma:*
# pom.xmlのバックアップを削除
./mvnw versions:commit# Spring Boot のアップデート確認
./mvnw versions:display-dependency-updates | grep spring-boot
# Spring Boot バージョンの更新
./mvnw versions:set-property -Dproperty=spring-boot.version -DnewVersion=4.0.1# 脆弱性のある依存関係をチェック(OWASP)
./mvnw org.owasp:dependency-check-maven:check
# 依存関係ツリーで競合確認
./mvnw dependency:tree