2016-02-29 3 views
2

Добрый день,jOOQ: Генерация кода с maven

Я пытаюсь создать простую настройку postgreSQL с помощью java с помощью jOOQ. Теперь я создал таблицу с именем Продукты с использованием pgadmin3, с двумя колонками:

CREATE TABLE public."Products" 
(
    id integer NOT NULL, 
    username text, 
    CONSTRAINT id PRIMARY KEY (id) 
) 
WITH (
    OIDS=FALSE 
); 
ALTER TABLE public."Products" 
    OWNER TO postgres; 

Теперь я пытаюсь использовать Java взаимодействовать с этой таблицей. Я могу запросить список таблиц из postgres, поэтому я знаю, что соединение работает. Однако, если я пытаюсь сделать Maven установить (с генерировать в качестве цели, я хочу, чтобы мои классы Java), я получаю следующее сообщение об ошибке:

[ERROR] /home/dries/workspace/postgres/target/generated-sources/jooq/org/jooq/util/maven/example/PublicFactory.java:[15,58] cannot find symbol 
    symbol: class PostgresFactory 
    location: package org.jooq.util.postgres 
[ERROR] /home/dries/workspace/postgres/target/generated-sources/jooq/org/jooq/util/maven/example/tables/Products.java:[12,44] cannot find symbol 
    symbol: class UpdatableTableImpl 
    location: package org.jooq.impl 
[ERROR] /home/dries/workspace/postgres/target/generated-sources/jooq/org/jooq/util/maven/example/Keys.java:[31,120] method createUniqueKey in class org.jooq.impl.AbstractKeys cannot be applied to given types; 
    required: org.jooq.Table<R>,org.jooq.TableField<R,?>[] 
    found: org.jooq.util.maven.example.tables.Products,org.jooq.TableField<org.jooq.util.maven.example.tables.records.ProductsRecord,java.lang.Integer> 
    reason: cannot infer type-variable(s) R 
    (argument mismatch; org.jooq.util.maven.example.tables.Products cannot be converted to org.jooq.Table<R>) 
[ERROR] /home/dries/workspace/postgres/target/generated-sources/jooq/org/jooq/util/maven/example/tables/records/ProductsRecord.java:[52,66] incompatible types: org.jooq.util.maven.example.tables.Products cannot be converted to org.jooq.Table<org.jooq.util.maven.example.tables.records.ProductsRecord> 
[ERROR] /home/dries/workspace/postgres/target/generated-sources/jooq/org/jooq/util/maven/example/PublicFactory.java:[83,62] cannot find symbol 
    symbol: method getSettings() 
    location: class org.jooq.util.maven.example.PublicFactory 
[ERROR] /home/dries/workspace/postgres/target/generated-sources/jooq/org/jooq/util/maven/example/tables/Products.java:[24,9] method does not override or implement a method from a supertype 
[ERROR] /home/dries/workspace/postgres/target/generated-sources/jooq/org/jooq/util/maven/example/tables/Products.java:[34,125] cannot find symbol 
    symbol: method createField(java.lang.String,org.jooq.DataType<java.lang.Integer>,org.jooq.util.maven.example.tables.Products) 
    location: class org.jooq.util.maven.example.tables.Products 
[ERROR] /home/dries/workspace/postgres/target/generated-sources/jooq/org/jooq/util/maven/example/tables/Products.java:[39,130] cannot find symbol 
    symbol: method createField(java.lang.String,org.jooq.DataType<java.lang.String>,org.jooq.util.maven.example.tables.Products) 
    location: class org.jooq.util.maven.example.tables.Products 
[ERROR] /home/dries/workspace/postgres/target/generated-sources/jooq/org/jooq/util/maven/example/tables/Products.java:[49,9] method does not override or implement a method from a supertype 
[ERROR] /home/dries/workspace/postgres/target/generated-sources/jooq/org/jooq/util/maven/example/tables/Products.java:[54,9] method does not override or implement a method from a supertype 
[ERROR] /home/dries/workspace/postgres/target/generated-sources/jooq/org/jooq/util/maven/example/tables/Products.java:[60,9] method does not override or implement a method from a supertype 
[ERROR] /home/dries/workspace/postgres/target/generated-sources/jooq/org/jooq/util/maven/example/Public.java:[36,40] method asList in class java.util.Arrays cannot be applied to given types; 
    required: T[] 
    found: org.jooq.util.maven.example.tables.Products 
    reason: varargs mismatch; org.jooq.util.maven.example.tables.Products cannot be converted to org.jooq.Table<?> 

Класс действительно получить генерируется, кажется (как я могу его найти в целевой папке). Однако в eclipse или intellij я не могу найти его в пути. В любом случае процесс сборки не должен прерываться.

Кто-нибудь знает, почему сборка не удалась?

Спасибо и добрый день.

+1

«' PublicFactory' »- какую древнюю версию jOOQ вы используете? :) Сначала усовершенствую ум? Кроме того, можете ли вы разместить соответствующую конфигурацию 'pom.xml'? –

+0

Хороший лорд, я был на 3.7.2 для jOOQ, но я, кажется, случайно скопировал плагин с 2.6.4. Результаты google иногда приводят к устаревшим версиям документов. Я буду обвинять понедельник в этом! Спасибо Lukas :) –

+1

Лучше с нетерпением ждем вторника! –

ответ

1

Итак, чтобы получить официальный ответ здесь, в разделе «Переполнение стека», вот мой комментарий снова как ответ.

С точки зрения внешнего вида вы используете устаревшую версию генератора кода jOOQ с более новой версией версии jOOQ. Эти два не совпадают, поэтому вы получаете эти исключения.

Я заметил, что класс PublicFactory больше не генерируется генераторами кода jOOQ 3.x.

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