Наиболее распространенные ошибки при запуске с jOOQ:
Нет генерации кода
В большинстве примеров из руководства jOOQ и других вопросов о переполнении стека предполагается, что вы используете Генератор кода jOOQ для обратного инжиниринга вашей схемы. Это означает, что у вас будут сгенерированные объекты, такие как table
(более вероятно, TABLE
) в сгенерированных классах.
Вам нужно будет stati c импортировать все эти объекты, например, используя
import static com.example.generated.Tables.*;
Теперь вы можете ссылаться на все ваши таблицы, например, c import, и на их столбцы из таблиц соответственно
Нет stati c import DSL.*
Еще одно предварительное условие для наиболее эффективного использования jOOQ необходимо выполнить c импорт всех методов из DSL
:
import static org.jooq.impl.DSL.*;
Это позволит вам использовать неквалифицированную max(Field)
статистическую функцию.
Обе эти предпосылки задокументированы в разделе руководства о том, как читать руководство . Они оба являются необязательными, вы можете работать с jOOQ без этих stati c импортов и всегда полностью квалифицировать ваши выражения.
Рабочий пример
После того, как вы настроили генерацию кода и stati c import, будет работать следующий запрос:
DSLContext dsl = DSL.using(connection, dialect);
Result<?> result =
dsl.select(max(TABLE.COLUMN))
.from(TABLE)
.groupBy(TABLE.ANOTHERCOLUMN)
.fetch();
выберите max (table.column) из группы таблиц по table.anothercolumn