よくある質問

一般

「Doma」とはどういう意味ですか?

「Doma」という名前は、「Dao Oriented database MApping framework」に由来しています。

アノテーション処理とは何ですか?

アノテーション処理は、コンパイル時にアノテーションを解析し、それらを使用してコードを生成したり、コンパイル時のチェックを実行したりするためのメカニズムです。

Domaにおいて、アノテーション処理は次の目的で使用されます。

  • @Entity@Domain のアノテーションが付けられたクラスからメタクラスを生成します。

  • @Dao アノテーションが付けられたインターフェースの実装クラスを生成します。

  • SQL テンプレートを検証する

実行時環境

Doma はどのバージョンの JRE をサポートしていますか?

JRE 8以降です。

Doma を動作させるにはどのライブラリが必要ですか?

どのライブラリも必須ではありません。

Doma は他のライブラリに依存していないからです。

開発環境

Doma はどのバージョンの JDK をサポートしていますか?

JDK 8以降です。

どのIDEがおすすめですか?

Doma は Eclipse と IntelliJ IDEA の両方で動作しますが、IntelliJ IDEA の使用をお勧めします。これは、Eclipse のアノテーション処理が本番環境で使用される JRE とは異なる動作をする可能性があるためです。

どのビルドツールがおすすめですか?

Gradle と Maven は両方ともサポートされています。

アノテーション処理で出力されたファイルはどこにあるのでしょうか?

Gradle

build/generated/sources/annotationProcessor を確認してください。

Maven

target/generated-sources/annotations を確認してください。

Eclipse

アノテーション処理の設定の出力先ディレクトリを確認してください。

IntelliJ IDEA

上記の Gradle と Maven のセクションを参照してください。

SQL ファイルが見つからないというメッセージが表示されますが、SQL ファイルは存在します。なぜですか?

ファイルは存在しますが、次のメッセージが表示される場合があります。

[DOMA4019] The file[META-INF/../select.sql] is not found from the classpath

このエラーは、ビルド ツールや IDE ごとの推奨設定に則ることで回避できます。

アプリケーションのビルド を参照してください。

データベース スキーマから Java コードを生成するツールは提供していますか?

はい。

データベースからJavaファイルとSQLファイルを生成する Doma CodeGen plugin を提供します。

データベースアクセスライブラリとしての機能

Doma は SQL ステートメントを生成しますか?

はい、Doma は次のステートメントを生成します。

  • SELECT

  • INSERT

  • DELETE

  • UPDATE

  • ストアドプロシージャ呼び出し

  • ストアドファンクション呼び出し

動的 SQL ステートメントの生成はサポートされていますか?

はい、次の 2 つの方法でサポートします。

  • SQL テンプレート

  • Criteria API

詳細については、SQLテンプレート および Criteria API を参照してください。

Doma は、1 対 1 または 1 対多のような関係の取得をサポートしていますか?

はい。

Doma は、データベースの関係を Java エンティティにマップするための Criteria API を提供します。

詳細については、 関連付け (Entityql) を参照してください。

Doma は JDBC 接続プーリング機能を提供しますか?

いいえ。

Doma を HikariCP などの JDBC 接続プール ライブラリと組み合わせて使用してください。