在 Hibernate 中将两个 SQL 查询调用合并为一个

Combine two SQL query calls into one in Hibernate

我有一个名为 find_slow_persons() 的存储过程,其中 returns 一个 table 有两列:

RETURNS TABLE(
        person_id           BIGINT,
        time_late_by        DOUBLE PRECISION
        )

并且使用 Hibernate,我可以通过 2 次调用获得这 2 列的值作为 List

 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();