Я использую jOOQ с простым SQL (не сгенерированный код). Я пытаюсь выбрать непосредственно в POJO, в котором есть поля типа enum.
MyType pojo = context.select().from(table("Table"))
.where(field("ID").equal("1")).fetchOne()
.into(MyType.class);
Мне кажется, что я могу указать только высокоуровневый картограф для всего моего POJO, например:
MyType pojo = context.select().from(table("Table"))
.where(field("ID").equal("1")).fetchOne()
.map(new RecordMapper<Record, MyType>() {
@Override
public MyType map(Record record) {
...
}
});
Я не могу найти способ предоставить сопоставления или преобразователи только для некоторых полей. В частности, я хотел бы сказать jooq что-то вроде «конвертировать все поля в обычном режиме, кроме тех случаев, когда поле в моем POJO имеет тип MyEnum, и в этом случае используйте это отображение (или преобразователь)».
Как я могу указать сопоставители для одних полей, а не для других?
Кстати, я заметил, что могу сделать что-то подобное на уровне конфигурации, сопоставив имена полей базы данных с помощью подстановочных знаков (как описано здесь), но я думаю, что было бы лучше, если бы решение определялось типом полей в POJO.