Сгенерированные запросы содержат схему и имя каталога

У меня та же проблема, что описана здесь

В сгенерированном SQL Informix ожидает catalog:schema.table, но на самом деле сгенерировано

catalog.schema.table

что приводит к синтаксической ошибке. Параметр:

hibernate.default_catalog=
hibernate.default_schema=

не имел никакого эффекта. Я даже удалил схему и каталог из аннотации таблицы, это вызвало другие проблемы: запрос выглядел так же, как ..table для установки каталога и схемы в пустую строку.

Версии

  • шов 2.1.2
  • Аннотации гибернации 3.3.1.GA.CP01
  • Спящий режим 3.2.4.sp1.cp08
  • Hibernate EntityManager 3.3.2.GAhibernate
  • Jboss 4.3 (аналогично 4.2.3)

person stacker    schedule 20.05.2010    source источник


Ответы (3)


Обратите внимание, что существует новая (по состоянию на 26 апреля 2010 г.) веб-страница http://www.iiug.org/opensource, в котором содержится информация об использовании программного обеспечения Informix с различными пакетами с открытым исходным кодом, включая Hibernate. В частности, имеется загружаемый код, улучшающий взаимодействие Hibernate и Informix.

person Jonathan Leffler    schedule 22.05.2010
comment
+1 Спасибо, здесь есть патчи для отдельной спящей версии, я проверю это позже. - person stacker; 23.05.2010
comment
К сожалению, это другая версия спящего режима, кроме того, что сборка завершается с ошибкой «Встроенная ошибка: невозможно выполнить po2xml: невозможно запустить программу po2xml: ошибка CreateProcess = 2» - person stacker; 07.06.2010
comment
po2xml — известная (даже если не очень известная) программа — возможно, от нее есть недокументированная зависимость. Поиск в Google показывает, что он доступен для Ubuntu. - person Jonathan Leffler; 07.06.2010

Я закончил с одним из худших хаков, которые я когда-либо делал:

Двоеточие - это оскорбительный символ, который должен быть '.' catalog:schema.table.

Informix позволяет комментировать операторы SQL select {comment} * from sometable

Поэтому я установил

hibernate.default_catalog={
hibernate.default_schema=}schemaname

результирующий код выглядит как

select * from {.}schemaname.tablename

который принимается парсером запросов informix.

person stacker    schedule 23.05.2010
comment
Выберите этот ответ как принятый, иначе этот вопрос появится без ответа - person Shervin Asgari; 25.05.2010
comment
@Shervin Шервин, я все еще надеюсь на другой ответ, возможно, у кого-то есть лучшее решение, у меня не было времени проверить Джонатанса. - person stacker; 26.05.2010
comment
У меня была такая же проблема, и она была решена путем удаления «схемы» и «каталога» из аннотации @Table в Entity. - person Kiavash; 14.06.2011

Удалите атрибуты schema и catalog из *.hbm.xml.

person Yolanda    schedule 30.07.2012