Java 在Hibernate中将两个SQL查询调用合并为一个
我有一个名为Java 在Hibernate中将两个SQL查询调用合并为一个,java,hibernate,jdbc,Java,Hibernate,Jdbc,我有一个名为find\u slow\u persons()的存储过程,它返回一个包含两列的表: RETURNS TABLE( person_id BIGINT, time_late_by DOUBLE PRECISION ) 使用Hibernate,我可以通过两次调用获得这两列的值,如List: SQLQuery query = session.createSQLQuery("s
find\u slow\u persons()
的存储过程,它返回一个包含两列的表:
RETURNS TABLE(
person_id BIGINT,
time_late_by DOUBLE PRECISION
)
使用Hibernate,我可以通过两次调用获得这两列的值,如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();
SQLQuery=
createSQLQuery(“从find\u slow\u persons()”中选择*).addScalar(“person\u id”,LongType.INSTANCE);
SQLQuery时间=
session.createSQLQuery(“选择*从查找速度慢的人()”).addScalar(“时间晚的人”),
LongType.INSTANCE);
List DuplicateDataPointId=query.List();
List timeBy=time.List();
现在我得到了我想要的两个数据列表,有没有办法将这两个列表组合起来,只进行一次查询?将列分为两次查询有什么原因吗?如果未达到预期效果,则以下各项应具有预期效果:
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();
我试图打印出它返回的对象数组,为什么它最后缺少一个结束符]?对象数组没有一个toString()方法可以很好地打印它,因为它不知道类型,请尝试将它们转换为long