如何使用 hibernate 获取 JDBC 结果集。在一种情况下,我想调用一个存储过程,它会进行一些计算并从多个表中选择一些列。
所以在我的存储过程中我有类似
selct sum(c1) as TotalVal, avg(c2) as AverageVal from ....
因此,我想在我的 Java 代码中获取这些列值并对其进行更多处理。 但是,我无法在 Java 代码中获取过程调用的结果集。
谁能告诉我怎么做?
我正在使用 Hibernate4,所以找不到 session.connection()
方法。此外,我尝试使用 doWork()
,但如何从内部类 Work
最佳答案
您可以使用 Session#doReturningWork(ReturningWork)
从 JDBC 调用返回您想要的结果:
session.beginTransaction();
ResultObject result = session.doReturningWork(new ReturningWork<ResultObject>() {
@Override
public ResultObject execute(Connection conn) throws SQLException {
// execute your SQL
// create and return result object
});
}
session.getTransaction().commit();
// work with ResultObject
您可以直接返回 JDBC-ResultSet,但我建议将值存储在一个单独的对象中(此处为:ResultObject),因为 ResultSet 与 JDBC 连接相关,而 JDBC 连接应保存在 execute() 中
方法。
关于java - 在 Hibernate 中获取 JDBC 结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25487070/