2014-02-09 6 views
2

Я пытаюсь использовать 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

+0

Снятие предложения «Использование» в соединении (с использованием предложения on) запрос работает правильно. Можно ли заставить JOOQ использовать и не использовать? – CIccio

+0

Я просто хочу сообщить вам, что я нашел решение, изменив класс HSQLDBDatabase, содержащий предложение «.using» в разделе «.on», и теперь он работает с корреляцией .. Я думаю .. Я буду дам вам знать. – CIccio

ответ

0

Это ошибка в jOOQ 3.2. Я создал проблему для этого: #3019. Это побочный эффект более общей ошибки, связанной с текущей интерпретацией jOOQ JOIN .. USING и NATURAL JOIN: #2808.

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

Смежные вопросы