Недопустимый DDL, сгенерированный после обновления до ColdFusion 2018 / Hibernate 5.2

У нас проблема с ColdFusion 2018 и / или Hibernate 5.2.

У нас есть ряд моделей, для которых DDL генерируется без проблем с ColdFusion 2016, но не работает с ColdFusion 2018. Мы не уверены, какая именно (ColdFusion или Hibernate) в конечном счете ответственна за проблемы, с которыми мы сталкиваемся.

Есть несколько вопросов:

  • База данных по умолчанию больше не работает
    • Строковые значения по умолчанию больше не указаны правильно.
    • Это: property name="CompanyName" fieldtype="column" ormtype="string" default="Acme Inc." dbdefault="Acme Inc.";
    • Результаты этого утверждения в таблице создают: CompanyName varchar(255) default Acme Inc. (пропущенные кавычки)
  • Имена баз данных больше не указываются правильно
    • У нас есть базы данных, названные как "prefix.databasename" (с точкой)
    • Раньше они работали с поиском, но теперь в CF2018 возникают ошибки, такие как "Имя объекта" prefix.databasename.dbo.SomeTable содержит больше максимального числа префиксов. Максимальное значение равно 2 ".
  • Имена таблиц больше не указываются правильно
    • Расстраивает то, что они иногда цитируются правильно, а иногда нет. Следующее взято из журналов гибернации: HIBERNATE DEBUG - alter table my_db.dbo.Group add DeletedByID int HIBERNATE DEBUG - alter table my_db.dbo.User add DeletedByID int HIBERNATE DEBUG - alter table [Group] add constraint FKfpa9ddoqu39xeskmmdg2pe3tq foreign key (DeletedByID) references [User] HIBERNATE DEBUG - alter table [User] add constraint FKj4hy4k4el0vvds8s8itfo2b04 foreign key (DeletedByID) references [User]
    • В первых двух строках обратите внимание на то, что ни имя базы данных, ни имя таблицы не указаны в кавычках (что приводит к ошибке "Ошибка выполнения DDL с помощью оператора JDBC - неверный синтаксис рядом с ключевым словом" Группа ".", Поскольку он задыхается от имени таблицы "Группа"). "). Однако в следующих двух строках он правильно цитирует имена таблиц и не квалифицирует их как имя базы данных...

Я знаю, что кто-то собирается взвесить и сказать, что у нас не должно быть точек в именах таблиц, и у нас не должно быть таблиц, названных по ключевым словам. Отметим, но суть в том, что мы это делаем, годами делали это без проблем, и они являются правильными именами при правильной обработке.

У кого-нибудь еще были подобные проблемы? Нам интересно, есть ли какие-то новые параметры конфигурации, которые нам не хватает, которые управляют этим поведением, или есть какой-то другой способ заставить ColdFusion/Hibernate вести себя так, как это делалось ранее. Альтернативой является изменение базы данных и имен таблиц и поиск кода для любых прямых ссылок на старые имена, но на самом деле, действительно, не хотят этого делать.

0 ответов

Другие вопросы по тегам