Я пытаюсь использовать JOOQ для подключения к HSQLDB, но я не удается, вот сообщение об ошибке:HSQLDB и JOOQ генерации кода
INFO: Initialising properties : /codegen.xml
2014-02-09T09:55:19.542+0100 SEVERE Error while fetching check constraints
org.jooq.exception.DataAccessException: SQL [select "tc"."TABLE_SCHEMA", "tc"."TABLE_NAME", "cc"."CONSTRAINT_NAME", "cc"."CHECK_CLAUSE" from "INFORMATION_SCHEMA"."TABLE_CONSTRAINTS" as "tc" join "INFORMATION_SCHEMA"."CHECK_CONSTRAINTS" as "cc" using("CONSTRAINT_CATALOG", "CONSTRAINT_SCHEMA", "CONSTRAINT_NAME") where "tc"."TABLE_SCHEMA" in (cast(? as varchar(128)))]; user lacks privilege or object not found: cc.CONSTRAINT_NAME
Этот запрос не будет также в менеджере HSQLDB (с тем же погрешность генератора кода JOOQ):
select "tc"."TABLE_SCHEMA", "tc"."TABLE_NAME", "cc"."CHECK_CLAUSE" , "cc"."CONSTRAINT_NAME"
from "INFORMATION_SCHEMA"."TABLE_CONSTRAINTS" as "tc"
join "INFORMATION_SCHEMA"."CHECK_CONSTRAINTS" as "cc"
using("CONSTRAINT_CATALOG", "CONSTRAINT_SCHEMA", "CONSTRAINT_NAME")
Этот запрос работает отлично:
select "tc"."TABLE_SCHEMA", "tc"."TABLE_NAME", "cc"."CHECK_CLAUSE" , "CONSTRAINT_NAME"
from "INFORMATION_SCHEMA"."TABLE_CONSTRAINTS" as "tc"
join "INFORMATION_SCHEMA"."CHECK_CONSTRAINTS" as "cc"
using("CONSTRAINT_CATALOG", "CONSTRAINT_SCHEMA", "CONSTRAINT_NAME")
Я думаю, что проблема находится на «сс» ква lifier (в поле «CONSTRAINT_NAME», возвращаемом запросом), является ли это ошибкой HSQLDB?
Я использую:
- HSQLDB 2.3.1
- JOOQ 3.2.3
Благодарности Ciccio
Снятие предложения «Использование» в соединении (с использованием предложения on) запрос работает правильно. Можно ли заставить JOOQ использовать и не использовать? – CIccio
Я просто хочу сообщить вам, что я нашел решение, изменив класс HSQLDBDatabase, содержащий предложение «.using» в разделе «.on», и теперь он работает с корреляцией .. Я думаю .. Я буду дам вам знать. – CIccio