У нас проблема с 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 вести себя так, как это делалось ранее.Альтернативой является изменение базы данных и имен таблиц и поиск кода для любых прямых ссылок на старые имена, но на самом деле очень не хочется этого делать.