Doma2 を Spring Boot と Maven と Eclipse(STS) で使ってみたよ

これまた楽ちんだった。

JJUG CCCの発表用に作ったデモアプリ( #jjug_ccc DDDとMicroservicesについて喋ってきましたー(∩´∀`)∩ - Mitsuyuki.Shiiba )で、Doma2を使ってみた。Doma1は以前に使ったことあるけどDoma2は初めて。っても、Doma2の機能の話じゃなくて、Doma2をSpring BootとMavenEclipseで使ってみたよ。って話ね。

pom.xml

Spring Bootのアプリにこれを追加すればいいだけ。

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
  <groupId>org.seasar.doma.boot</groupId>
  <artifactId>doma-spring-boot-starter</artifactId>
  <version>1.1.0</version>
</dependency>

Doma は Annotation Processor を使ってるから、pomのビルド設定を書くのが面倒くさかったんだけど、doma-spring-boot-starterが良いようにやってくれてるっぽい!素敵だ。

Eclipse: m2e

僕はSTSを使ったからMaven周りのプラグインが最初から入ってるんだけど、ここに m2e を追加で入れておく。で、プロジェクトをインポートすると、自動的に Annotation Processor が設定される。素敵だ。

@Transactional

SpringのTransactionalアノテーションが特に何も考えなくても使える。素敵だ。(パッケージプライベートなメソッドにつけててトランザクションかからなくて???ってなってたのは内緒)

設定ファイル

h2を使ったので application.ymldoma.dialect: h2 をつけといたらDialectがh2になった。素敵だ。

Eclipse: Doma Plugin

SQLファイルとDaoの間を行ったり来たりするプラグイン。入れとくと便利。

http://doma.readthedocs.io/ja/stable/getting-started/#eclipse-doma-tools

いっこはまったこと: META-INFの場所

特に何も考えずにSQLファイルを src/main/java/META-INF の下に入れてて。Eclipseで動かすときは問題なかったんだけど、Mavenでビルドしようとすると「SQLファイルが見つからない」って怒られて。「はて?」ってなってたんだけど、これ src/main/resources/META-INF の下に入れなきゃいけないっぽい。ま、SQLファイルなんだし、そのほうが自然だな。

全然関係ないけど、Entity クラスのフィールドとして LocalDateTime が何も考えずに使えるところに幸せを感じた。

参照

Welcome to Doma — Doma 2.0 ドキュメント

Spring Boot + Doma2を使おう - BLOG.IK.AM

GitHub - domaframework/doma-spring-boot

JJUG CCC カテゴリーの記事一覧 - Mitsuyuki.Shiiba