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