よくある質問
一般
「Doma」とはどういう意味ですか?
「Doma」という名前は、「Dao Oriented database MApping framework」に由来しています。
アノテーション処理とは何ですか?
アノテーション処理は、コンパイル時にアノテーションを解析し、それらを使用してコードを生成したり、コンパイル時のチェックを実行したりするためのメカニズムです。
Domaにおいて、アノテーション処理は次の目的で使用されます。
@Entity
と@Domain
のアノテーションが付けられたクラスからメタクラスを生成します。@Dao
アノテーションが付けられたインターフェースの実装クラスを生成します。SQL テンプレートを検証する
実行時環境
Doma はどのバージョンの JRE をサポートしていますか?
JRE 17以降です。
Doma を動作させるにはどのライブラリが必要ですか?
どのライブラリも必須ではありません。
Doma は他のライブラリに依存していないからです。
開発環境
Doma はどのバージョンの JDK をサポートしていますか?
JDK 17以降です。
どの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 接続プール ライブラリと組み合わせて使用してください。