Следующий запрос jOOQ выдает предупреждение SQL в моих журналах о: Fields Ambiguous match found for id
db.select(FORWARDED_MESSAGE.SES_MESSAGE_ID).
from(FORWARDED_MESSAGE).
where(
FORWARDED_MESSAGE.FORWARDED.lt( DSL.currentTimestamp().subtract(
FORWARDED_MESSAGE.mailMapping().mailKeyword().mailDomain().account().
MESSAGE_RETENTION_DAYS ))).
fetch(FORWARDED_MESSAGE.SES_MESSAGE_ID);
Сгенерированный SQL кажется правильным, но я не хочу, чтобы предупреждение загрязняло мои журналы (и я хочу знать, предупреждает ли jOOQ о чем-то важном, о чем мне нужно знать).
Некоторый контекст о таблицах схемы:
forwarded_message
не имеет первичного ключа mail_domain
использует естественный PK с именем «domain» mail_mapping
, mail_keyword
и account
все имеют PK с именем id
Я пробовал следующее, но не смог сказать Key ambiguous between tables
:
db.select(FORWARDED_MESSAGE.SES_MESSAGE_ID).
from(FORWARDED_MESSAGE).
join(MAIL_MAPPING).onKey().
join(MAIL_KEYWORD).onKey().
join(MAIL_DOMAIN).onKey().
join(ACCOUNT).onKey().
where(
FORWARDED_MESSAGE.FORWARDED.lt(
DSL.currentTimestamp().subtract(ACCOUNT.MESSAGE_RETENTION_DAYS) )).
fetch(FORWARDED_MESSAGE.SES_MESSAGE_ID);
версия jOOQ - 3.13.4
, DB - postgres, используя pgjdb c 42.2.14
.
Вопрос : Как устранить предупреждение Fields Ambiguous match found
?
Примечание: это не обман . Как разрешить неоднозначное совпадение при объединении сгенерированных классов Jooq , потому что это было связано с неоднозначностью подкласса - этот вопрос касается простого объединения объединений (в таблицах, которые имеют повторяющиеся столбцы PK).