我有一个名为 find_slow_persons()
的存储过程,它返回一个包含两列的表:
RETURNS TABLE(
person_id BIGINT,
time_late_by DOUBLE PRECISION
)
使用 Hibernate,我可以通过 2 次调用以 List
形式获取这 2 列的值:
SQLQuery query =
session.createSQLQuery("select * from find_slow_persons()").addScalar("person_id", LongType.INSTANCE);
SQLQuery time =
session.createSQLQuery("select * from find_slow_persons()").addScalar("time_late_by",
LongType.INSTANCE);
List<Long> duplicateDataPointIds = query.list();
List<Long> timeBy = time.list();
现在我得到了我想要的 2 个数据列表,有没有办法将这 2 个列表组合起来并且只进行 1 个查询?
最佳答案
您将列分成两个查询是否有原因?如果没有,以下应该会达到预期的效果:
session.createSQLQuery("select * from find_slow_persons()")
.addScalar("person_id", LongType.INSTANCE)
.addScalar("time_late_by", LongType.INSTANCE)
// returns an object[] List you'll have to unpack
List duplicateDataPointIds = query.list();
关于java - 在 Hibernate 中将两个 SQL 查询调用合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28618222/