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

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

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

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

  • По умолчанию базы данных больше не работают
    • Строковые значения по умолчаниюбольше не цитируются должным образом.
    • This: property name="CompanyName" fieldtype="column" ormtype="string" default="Acme Inc." dbdefault="Acme Inc.";
    • Результаты этого оператора в таблице создают: CompanyName varchar(255) default Acme Inc. (пропущенные кавычки)
  • Имена баз данных больше не заключаются в кавычки
    • У нас есть базы данных с именами, такими как "prefix.databasename" (с точкой)
    • Они раньше работали, находят, но теперь в CF2018 приводят к ошибкам, таким как "Объектname 'prefix.databasename.dbo.SomeTable содержит больше максимального количества префиксов. Максимальное значение - 2. "
  • Имена таблиц больше не заключаются в кавычки
    • FrustratinДело в том, что они иногда цитируются правильно, а иногда нет.Следующее взято из журналов гибернации: 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 вести себя так, как это делалось ранее.Альтернативой является изменение базы данных и имен таблиц и поиск кода для любых прямых ссылок на старые имена, но на самом деле очень не хочется этого делать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...