java - 调用存储过程时,休眠查询返回空值
问题描述
我正在尝试调用 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;
}
解决方案
推荐阅读
- c# - C# 正则表达式将不匹配
- flutter-web - Flutter android错误:类型'_Smi'不是类型'double'的子类型作为演员
- ansible - Ansible:包括这些行而不包括其他行
- azure - 将动态内容设置为管道参数的默认值?
- php - PHP NetSuite - 带标准的高级搜索
- azure - 如何在 Azure 数据工厂中将日期时间转换为 UTC?
- c++ - 是否允许优化编译器省略在短路中间接使用的函数调用?
- javascript - 从 Google 用户信息端点获取 401
- c# - foreach 中的 SaveChanges(),用于插入 ID
- ruby - Rubocop,如何在代码块上禁用/启用警察