Вы можете использовать DSLContext.fetchSingle(Table, Condition)
:
AccountRecord account = db.fetchSingle(ACCOUNT, ACCOUNT.ID.eq(identity.getAccountId()));
Сгенерированная ссылка ACCOUNT
не имеет ссылки на тип ключа, поэтому предложенный вами синтаксис невозможен,Конечно, вы могли бы расширить генератор кода , чтобы создать метод, который принимает значение первичного ключа и производит Condition
:
class Account {
..
public Condition byKey(Long accountId) {
return ID.eq(accountId);
}
public AccountRecord fetchByKey(DSLContext ctx, Long accountId) {
return ctx.fetchSingle(this, byKey(accountId));
}
}
А теперь используйте выше:
AccountRecord account = ACCOUNT.fetchByKey(db, identity.getAccountId());