Рассматривали ли вы методы jOOQ Record.into () и ResultQuery.fetchInto () ? Они поддерживают отображение записей JOOQ на пользовательские POJO. Вы можете сгенерировать эти POJO непосредственно с помощью jOOQ или определить их самостоятельно. Если JPO-аннотации присутствуют в ваших POJO, они будут использованы. В противном случае jOOQ отображает записи в ваш POJO на основе соглашений об именах методов.
Пример:
@Entity
public class POJO {
private int id;
@Column(name = "ID")
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
}
// Fetch several of the above POJO's into a list
List<POJO> result =
DSL.using(connection, dialect)
.select(MY_TABLE.ID)
.from(MY_TABLE)
.fetchInto(POJO.class);
// Fetch single POJO's
POJO pojo =
DSL.using(connection, dialect)
.select(MY_TABLE.ID)
.from(MY_TABLE)
.where(MY_TABLE.ID.equal(1))
.fetchOne()
.into(POJO.class);
Теперь в приведенном выше примере вы будете использовать jOOQ для выполнения запросов. Поскольку вы говорите о преобразовании ResultSet
объектов в ваши пользовательские POJO, я предполагаю, что вы используете jOOQ только в качестве построителя запросов. Возможно, в этом случае вы все еще можете использовать jOOQ для извлечения данных из JDBC ResultSet
, например:
ResultSet rs = // [ your querying here ]
List<POJO> result = create.fetch(rs).into(POJO.class);