首页 > 解决方案 > 调用存储过程时,休眠查询返回空值

问题描述

我正在尝试调用 postgreSQL 存储过程来检索员工的详细信息。
当我运行此方法时,它返回空值。

public List<EmployeeAttendanceVO> getdata(String ListempIdString)
{

String startDayTime = "2020-05-22 00:00:00.000";
String endDayTime = "2020-05-22 23:59:59.999";
String ListempIdString = "'P1200',P1201',P1202',P1203',P1204',P1205'";
Session session = sessionFactory.getCurrentSession();

//Calling GETEMPDATA PostgreSQL Stored Procedure 
SQLQuery query = session.createSQLQuery("SELECT * FROM GETEMPDATA (ARRAY[:ListempIdString], :startDayTime , :endDayTime)");

query.setString("ListempIdString", ListempIdString);
query.setString("startDayTime",startDayTime);
query.setString("endDayTime", endDayTime);
query.addEntity(EmployeeAttendanceVO.class);
List<EmployeeAttendanceVO> queryResult = query.list();

return queryResult;

 }

当我以这种方式运行它时它会返回数据:

public List<EmployeeAttendanceVO> getdata(String ListempIdString)
     {

String startDayTime = "2020-05-22 00:00:00.000";
String endDayTime = "2020-05-22 23:59:59.999";
Session session = sessionFactory.getCurrentSession();

//Calling GETEMPDATA PostgreSQL Stored Procedure
SQLQuery query = session.createSQLQuery("SELECT * FROM GETEMPDATA (ARRAY['P1200',P1201',P1202',P1203',P1204',P1205'], :startDayTime , :endDayTime)");

query.setString("startDayTime",startDayTime);
query.setString("endDayTime", endDayTime);
query.addEntity(EmployeeAttendanceVO.class);
List<EmployeeAttendanceVO> queryResult = query.list();

return queryResult;

      }

标签: javapostgresqlhibernatestored-procedureshql

解决方案


推荐阅读