SCHEMA Queries


The SCHEMA query generates the following DDL statements from the mapping definition:

  • CREATE/DROP statements for tables corresponding to entity classes
  • CREATE/DROP statements for sequences that generate the entity’s ID values


To generate CREATE statements, call the create function:

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));


To generate DROP statements, call the drop function:

val query: Query<Unit> = QueryDsl.drop(Meta.address, Meta.employee)
drop table if exists ADDRESS;
drop table if exists EMPLOYEE;


To customize the behavior of the query, call the options function. The options function accept a lambda expression whose parameter represents default options. Call the copy function on the parameter to change its properties:

val query: Query<Unit> = QueryDsl.create(Meta.address, Meta.employee).options {
      queryTimeoutSeconds = 5

The options that can be specified are as follows:

Default is null to indicate that the driver value should be used.
Whether to suppress SQL log output. Default is false.

Properties explicitly set here will be used in preference to properties with the same name that exist in executionOptions.

Last modified May 24, 2022: Fix typos (27dead1)