#jooq
#jooq
Вопрос:
В MariaDB у меня есть таблица, которая выглядит следующим образом:
CREATE TABLE `REFERENCE_MANAGEMENT_REQUESTS` (
.. stuff ..
UNIQUE KEY `REFERENCE_MANAGEMENT_REQUESTS_key_UN` (`rmr_key`),
.. more stuff ..
)
Исходя из этого, jOOQ генерирует:
public static Index REFERENCE_MANAGEMENT_REQUESTS_REFERENCE_MANAGEMENT_REQUESTS_KEY_UN = Internal.createIndex("REFERENCE_MANAGEMENT_REQUESTS_key_UN", ReferenceManagementRequests.REFERENCE_MANAGEMENT_REQUESTS, new OrderField[] { ReferenceManagementRequests.REFERENCE_MANAGEMENT_REQUESTS.RMR_KEY }, true);
Если я это сделаю dslContext.ddl(schema)
, это сгенерирует это:
create table REFERENCE_MANAGEMENT_REQUESTS (
.. stuff ..
constraint KEY_REFERENCE_MANAGEMENT_REQUESTS_REFERENCE_MANAGEMENT_REQUESTS_key_UN unique (rmr_key)
)
что приводит к:
java.sql.SQLException: Identifier name 'KEY_REFERENCE_MANAGEMENT_REQUESTS_REFERENCE_MANAGEMENT_REQUESTS_key_UN' is too long
.
Есть ли способ изменить поведение либо генератора (пусть он генерирует более короткое имя константы), либо функции ddl (пусть она использует фактическое имя, а не имя переменной)?
Редактировать
упс.. недостаточно внимательно прочитал это. Фактическая ошибка упоминает эту:
public static final UniqueKey<ReferenceManagementRequestsRecord> KEY_REFERENCE_MANAGEMENT_REQUESTS_REFERENCE_MANAGEMENT_REQUESTS_KEY_UN = Internal.createUniqueKey(ReferenceManagementRequests.REFERENCE_MANAGEMENT_REQUESTS, "KEY_REFERENCE_MANAGEMENT_REQUESTS_REFERENCE_MANAGEMENT_REQUESTS_key_UN", ReferenceManagementRequests.REFERENCE_MANAGEMENT_REQUESTS.RMR_KEY);