Version v1.2 of the documentation is no longer actively maintained. The site that you are currently viewing is an archived snapshot. For up-to-date documentation, see the latest version.
SCHEMAクエリ
テーブルスキーマの作成や削除のためのクエリ
概要
SCHEMAクエリはマッピング定義から以下のDDLを組み立てます。
- エンティティに対応するテーブルのCREATE文/DROP文
- エンティティのIDを生成するシーケンスのCREATE文/DROP文
Note
SCHEMAクエリは開発時のみの利用を推奨します。 例えば、次のようなユースケースを想定しています。
- サンプルアプリを作る
- プロジェクト初期に簡易的なDDLを手に入れる
プロダクション環境で使うDDLスクリプトを別途管理した方が良いでしょう。
create
CREATE文を生成するにはcreate
を呼び出します。
val query: Query<Unit> = QueryDsl.create(Meta.address, Meta.employee)
/*
create table if not exists ADDRESS (ADDRESS_ID integer not null, STREET varchar(500) not null, VERSION integer not null, constraint pk_ADDRESS primary key(ADDRESS_ID));
create table if not exists EMPLOYEE (EMPLOYEE_ID integer not null, EMPLOYEE_NO integer not null, EMPLOYEE_NAME varchar(500) not null, MANAGER_ID integer, HIREDATE date not null, SALARY bigint not null, DEPARTMENT_ID integer not null, ADDRESS_ID integer not null, VERSION integer not null, constraint pk_EMPLOYEE primary key(EMPLOYEE_ID));
*/
Note
対象のオブジェクトがすでに存在している場合、例外はスローされません。 また、後続処理も中断されません。drop
DROP文を生成するにはdrop
を呼び出します。
val query: Query<Unit> = QueryDsl.drop(Meta.address, Meta.employee)
/*
drop table if exists ADDRESS;
drop table if exists EMPLOYEE;
*/
Note
対象のオブジェクトが存在していない場合、例外はスローされません。 また、後続処理も中断されません。options
クエリの挙動をカスタマイズするにはoptions
を呼び出します。
ラムダ式のパラメータはデフォルトのオプションを表します。
変更したいプロパティを指定してcopy
メソッドを呼び出してください。
val query: Query<Unit> = QueryDsl.create(Meta.address, Meta.employee).options {
it.copy(
queryTimeoutSeconds = 5
)
}
指定可能なオプションには以下のものがあります。
- queryTimeoutSeconds
- クエリタイムアウトの秒数です。デフォルトは
null
でドライバの値を使うことを示します。 - suppressLogging
- SQLのログ出力を抑制するかどうかです。デフォルトは
false
です。
executionOptions の同名プロパティよりもこちらに明示的に設定した値が優先的に利用されます。
最終更新 May 24, 2022: Fix typos (27dead1)