2016-08-31 7 views
0

Я пытаюсь вызвать административную функцию pg_catalog.pg_advisory_unlock с помощью JOOQ. Я в состоянии создать модель для этой функции, имея это в моем Gradle файле сборки:Не удалось вызвать функцию pg_advisory_lock в Postgres с помощью jooq

schemata { 
    schema { 
     inputSchema = "public" 
    } 
    schema { 
     inputSchema = "pg_catalog" 
    } 
    includes = "public.*|pg_catalog.pg_advisory_lock" 
} 

Файл pg_catalog>Routines.java имеет публичный метод static void pgAdvisoryLock1(Configuration configuration, Long __1) который я называю как таковой:

Connection connection = DatabaseService.getInstance().getConnection("sampleUser"); 
    Settings settings = new Settings() 
     .withRenderMapping(new RenderMapping() 
      .withSchemata(
       new MappedSchema().withInput("shard_0") 
        .withOutput("shard_1"))); 
    DSLContext create = DSL.using(connection, settings); 

    Long param = 1l; 
    pgAdvisoryLock1(create.configuration(), param); 

Я получаю ошибка:

Exception in thread "main" org.jooq.exception.DataAccessException: SQL [select * from "pg_catalog"."pg_advisory_lock"("_1" := ?)]; ERROR: function pg_catalog.pg_advisory_lock(_1 => bigint) does not exist 
    Hint: No function matches the given name and argument types. You might need to add explicit type casts. 

Поблагодарили бы за любую помощь. Благодаря!

EDIT: Думаю, что это немного больше, я думаю, что я помню, где-то читал, что у JOOQ были проблемы с неименованными параметрами в функциях postgres. Подумайте, связано ли это с этим. Поскольку это административная встроенная функция, я не смог бы изменить неименованный параметр на именованный параметр. Я использую версию 3.6.2 JOOQ (в основном, потому что я использую этот плагин gradle (https://github.com/etiennestuder/gradle-jooq-plugin), который использует эту версию JOOQ, я думаю. Не уверен, что новые версии JOOQ имеют такое исправление.

ответ

0

Действительно, эта проблема была решена в то же время

Твердая проводкой зависимость в этом плагине к конкретной версии jOOQ известная проблема (https://github.com/etiennestuder/gradle-jooq-plugin/pull/14), который я Ожидается, что скоро будет исправлено.

+0

Спасибо, Лукас, я ценю это! – iman453