В соответствии с инструкциями по запуску мне удалось успешно сгенерировать классы таблиц в JOOQ, которые в конечном итоге выглядят так:
public class AgencyMeta extends TableImpl<AgencyMetaRecord> {
private static final long serialVersionUID = 214852552;
/**
* The reference instance of <code>PUBLIC.AGENCY_META</code>
*/
public static final AgencyMeta AGENCY_META = new AgencyMeta();
/**
* The class holding records for this type
*/
@Override
public Class<AgencyMetaRecord> getRecordType() {
return AgencyMetaRecord.class;
}
/**
* The column <code>PUBLIC.AGENCY_META.ID</code>.
*/
public final TableField<AgencyMetaRecord, Long> ID = createField("ID", org.jooq.impl.SQLDataType.BIGINT.nullable(false).defaulted(true), this, "");
/**
* The column <code>PUBLIC.AGENCY_META.AGENCY_ID</code>.
*/
public final TableField<AgencyMetaRecord, Long> AGENCY_ID = createField("AGENCY_ID", org.jooq.impl.SQLDataType.BIGINT.nullable(false), this, "");
/**
* The column <code>PUBLIC.AGENCY_META.KEY</code>.
*/
public final TableField<AgencyMetaRecord, String> KEY = createField("KEY", org.jooq.impl.SQLDataType.VARCHAR.length(255).nullable(false), this, "");
/**
* The column <code>PUBLIC.AGENCY_META.VALUE</code>.
*/
public final TableField<AgencyMetaRecord, String> VALUE = createField("VALUE", org.jooq.impl.SQLDataType.CLOB, this, "");
/**
* Create a <code>PUBLIC.AGENCY_META</code> table reference
*/
public AgencyMeta() {
this("AGENCY_META", null);
}
/**
* Create an aliased <code>PUBLIC.AGENCY_META</code> table reference
*/
public AgencyMeta(String alias) {
this(alias, AGENCY_META);
}
private AgencyMeta(String alias, Table<AgencyMetaRecord> aliased) {
this(alias, aliased, null);
}
private AgencyMeta(String alias, Table<AgencyMetaRecord> aliased, Field<?>[] parameters) {
super(alias, Public.PUBLIC, aliased, parameters, "");
}
/**
* {@inheritDoc}
*/
@Override
public Identity<AgencyMetaRecord, Long> getIdentity() {
return Keys.IDENTITY_AGENCY_META;
}
/**
* {@inheritDoc}
*/
@Override
public UniqueKey<AgencyMetaRecord> getPrimaryKey() {
return Keys.CONSTRAINT_A0;
}
/**
* {@inheritDoc}
*/
@Override
public List<UniqueKey<AgencyMetaRecord>> getKeys() {
return Arrays.<UniqueKey<AgencyMetaRecord>>asList(Keys.CONSTRAINT_A0, Keys.CONSTRAINT_A0F);
}
/**
* {@inheritDoc}
*/
@Override
public List<ForeignKey<AgencyMetaRecord, ?>> getReferences() {
return Arrays.<ForeignKey<AgencyMetaRecord, ?>>asList(Keys.CONSTRAINT_A0FC);
}
/**
* {@inheritDoc}
*/
@Override
public AgencyMeta as(String alias) {
return new AgencyMeta(alias, this);
}
/**
* Rename this table
*/
public AgencyMeta rename(String name) {
return new AgencyMeta(name, null);
}
}
По-видимому, у него есть все ингредиенты для создания таблицы, и частично я могу сделать это следующим образом:
create.createTable(PRODUCT).column(PRODUCT.ID, SQLDataType.BIGINT.nullable(false).defaulted(true)).execute();
И так далее...
Когда программа запускается в первый раз, я хотел бы создать базу данных h2 на месте.
Есть ли способ создать таблицу или даже всю базу данных с помощью одной команды? Казалось бы, здесь следует исходить из того, что предоставляется.