你看过 jOOQ 的Record.into()和ResultQuery.fetchInto()方法吗?它们支持将 jOOQ 记录映射到自定义 POJO。您可以直接使用 jOOQ 生成这些 POJO,也可以自己定义它们。如果您的 POJO 上存在 JPA 注释,则将使用这些注释。否则,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);