Укажите поля без таблицы - PullRequest
0 голосов
/ 12 мая 2019

На домашней странице jOOQ есть хороший пример:

create.select(BOOK.TITLE)
  .from(BOOK)
  .where(BOOK.PUBLISHED_IN.eq(2011))
  .orderBy(BOOK.TITLE)

Есть ли способ сделать его более лаконичным?
Я думаю о чем-то вроде этого:

create.select(TITLE)
  .from(BOOK)
  .where(PUBLISHED_IN.eq(2011))
  .orderBy(TITLE)

1 Ответ

2 голосов
/ 12 мая 2019

В генераторе кода объявлена ​​устаревшая функция <instanceFields>false</instanceFields>, которую можно использовать для создания статических ссылок на поля в сгенерированных таблицах.Таким образом, то, что вы хотите сделать, было бы возможно.

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

Book b = BOOK.as("b");

create.select(b.TITLE)
  .from(b)
  .where(b.PUBLISHED_IN.eq(2011))
  .orderBy(b.TITLE)

Конечно, вы всегда можете расширить встроенный генератор кода для генерации дополнительных статических ссылок на все не неоднозначные ссылки на столбцы во всех таблицах, но так же, как в SQL, а не на квалифицированные столбцыбудет быстро ломаться, когда вы добавляете объединения или дополнительные столбцы в свои запросы, в случае, если ранее не двусмысленные ссылки внезапно станут неоднозначными.

...