version.ドキュメントリファレンスクエリクエリのDSL検索SELECTクエリ検索のためのクエリ概要SELECTクエリはQueryDslのfrom、withまたはselectを呼び出して構築します。次のクエリはADDRESSテーブルを全件取得するSQLに対応します。t0_*/fromFROM句を指定する場合はfromを呼び出します。fromにはエンティティメタモデルを指定します。t0_*/fromにはエンティティメタモデルと共にサブクエリを指定できます。エンティティメタモデルはサブクエリの結果に対応していなければいけません。asc*/上述のMeta.employeeRankに対応するエンティティ定義は次の通りです。Int,)withWITH句を指定する場合はwithを呼び出します。with関数には、エンティティメタモデルとサブクエリを指定します。エンティティメタモデルはサブクエリの結果に対応していなければいけません。asc*/上述のMeta.employeeRankに対応するエンティティ定義は次の通りです。RECURSIVE句を指定する場合はwithRecursiveを呼び出します。withRecursive関数には、エンティティメタモデルとサブクエリを指定します。エンティティメタモデルはサブクエリの結果に対応していなければいけません。t0_*/上述のMeta.tに対応するエンティティ定義は次の通りです。Int,)whereWHERE句を指定する場合はwhereを呼び出します。JOINを行う場合はinnerJoinを呼び出します。JOINを行う場合はleftJoinを呼び出します。UPDATE句を指定する場合はforUpdateを呼び出します。waitなどの関数を呼び出しLockオプションを指定できます。クエリの実行時にUnsupportedOperationExceptionがスローされます。forUpdateに渡すラムダ式の中でof関数を使うことでLock対象のテーブルを指定できます。クエリの実行時にUnsupportedOperationExceptionがスローされます。BY句を指定する場合はorderByを呼び出します。asc*/デフォルトでは昇順ですが降順を指定する場合はカラムをorderByに渡す前にカラムに対してdescを呼び出します。昇順を表すascを明示的に呼び出すことやカラムを複数指定することもできます。asc*/NULLのソート順序を制御するために、カラムに対してascNullsFirst、ascNullsLast、descNullsFirst、descNullsLastを呼び出すこともできます。limit指定した位置から一部の行を取り出すにはoffsetやlimitを呼び出します。only*/distinctDISTINCTキーワードを指定するにはdistinctを呼び出します。t1_.DEPARTMENT_ID)*/select射影を行うにはselectを呼び出します。1つのカラムを射影する例です。asc*/2つのカラムを射影する例です。asc*/3つのカラムを射影する例です。asc*/4つ以上のカラムを射影する例です。test")])}4つ以上のカラムを射影した場合、結果の値はRecordに含まれます。クエリのselectに指定したカラムをkeyにして値を取得できます。selectNotNullNULLでないことが確実なカラムを射影するにはselectNotNullを呼び出せます。1つのカラムを射影する例です。asc*/queryの型がQuery<List<String>>であることに注目してください。これは、queryを実行して得られる値の型が<List<String>>であることを表しています。このケースでselectNotNullの代わりにselectを使うと、実行して得られる型は<List<String?>>です。selectAsRecord4つ未満のカラムの射影で結果をRecordとして受け取りたい場合はselectの代わりにselectAsRecordを呼び出します。asc*/selectAsEntity結果を射影して任意のエンティティとして受け取りたい場合はselectAsEntityを呼び出します。引数にはエンティティのメタモデル、第二引数以降には射影するプロパティを指定します。プロパティの順番や型はエンティティクラスのコンストラクタに合わせなければいけません。次の例ではEMPLOYEEテーブルを検索していますが、結果をAddressエンティティとして受け取っています。t0_*/havingHAVING句を指定するにはhavingを呼び出します。BY句はselect関数に渡された引数から推測されて生成されます。BY句を指定するにはgroupByを呼び出します。asc*/unionUNION演算を行うにはクエリをunionで連携します。desc*/Noteunionに加え、unionAll、except、intersectといった関数をセット演算子として利用できます。クエリを実行した時点でUnsupportedOperationExceptionがスローされます。first最初の1件を返却するクエリであることを示すには最後にfirstを呼び出します。?*/firstOrNull最初の1件もしくはnullを返却するクエリであることを示すには最後にfirstOrNullを呼び出します。?*/firstOrNull関数は、クエリの結果が空の場合にnullを返します。single必ず1件を返却するクエリであることを示すには最後にsingleを呼び出します。?*/singleOrNull1件もしくはnullを返却するクエリであることを示すには最後にsingleOrNullを呼び出します。?*/singleOrNull関数は、クエリの結果が空もしくは2件以上の行を持つ場合にnullを返します。collect結果セットをkotlinx.coroutines.flow.Flowとして処理するには最後にcollectを呼び出します。t0_*/Notecollectを使うと、結果セットを全てメモリに読み込んだ後に処理するのではなく結果セットを1件ずつ読み込みながら処理することになります。したがって、メモリの使用効率を向上させられます。includeJOINしたテーブルのカラムをSELECT句に含める場合はincludeを呼び出します。org.komapper.core.dsl.query.EntityStoreインスタンスです。EntityStoreからエンティティの一覧をSetとして取得したり、エンティティの関連をMapとして取得したりが可能です。上述のqueryを実行してEntityStoreから一覧や関連を取り出す例を以下に示します。a)関連を表すMapのキーをエンティティのIDに変換して取得することもできます。APIも参照ください。includeAllJOINしたテーブル全てのカラムをSELECT句に含めたい場合は、includeAllを呼び出します。optionsクエリの挙動をカスタマイズするにはoptionsを呼び出します。ラムダ式のパラメータはデフォルトのオプションを表します。変更したいプロパティを指定してcopyメソッドを呼び出してください。)}指定可能なオプションには以下のものがあります。allowMissingWhereClause空のWHERE句を認めるかどうかです。デフォルトはtrueです。escapeSequenceLIKE句に指定されるエスケープシーケンスです。デフォルトはnullでDialectの値を使うことを示します。fetchSizeフェッチサイズです。デフォルトはnullでドライバの値を使うことを示します。maxRows最大行数です。デフォルトはnullでドライバの値を使うことを示します。queryTimeoutSecondsクエリタイムアウトの秒数です。デフォルトはnullでドライバの値を使うことを示します。suppressLoggingSQLのログ出力を抑制するかどうかです。デフォルトはfalseです。同名プロパティよりもこちらに明示的に設定した値が優先的に利用されます。