gpt4 book ai didi

hibernate - 如何将 ResultSet 对象转换为 Hibernate Entity Bean

转载 作者:行者123 更新时间:2023-12-03 06:50:18 24 4
gpt4 key购买 nike

我有一个项目,在这个项目开始时我们选择Hibernate而不是JDBC进行持久化,但是我们发现Hibernate不能适用于这个应用程序中的所有情况,所以我们必须在这些情况下使用JDBC进行持久化Hibernate 无法申请。最后,我们选择jooq而不是JDBC。所以在这个应用中存在两种持久化技术,即Hibernate和Jooq。现在,我们想要将 jooq 创建的 ResultSet 转换为 Hibernate Entity Beans。我搜索了有关 Hibernate 的资源但没有找到任何信息。 Hibernate 似乎没有相应的 API。

所以,我有几个问题!

  1. 如何获取 Hibernate 的当前上下文?
  2. 如何使用此上下文将 ResultSet 对象转换为 Hibernate Entity Bean(问题 1 中提到)?

谢谢大家。

最佳答案

你看过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 fetch data from a JDBC ResultSet像这样:

ResultSet rs = // [ your querying here ]
List<POJO> result = create.fetch(rs).into(POJO.class);

关于hibernate - 如何将 ResultSet 对象转换为 Hibernate Entity Bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9733765/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com