select *
from commanconfig.fn_cm_get_usage_statistics_progress(422,'1-nov-2019','27-nov-2019')
上面的查询工作正常。
但是当我通过Hibernate调用该函数时,显示错误:-
org.postgresql.util.PSQLException: ERROR: function
property.fn_pt_assessment_register_report(integer,
unknown, unknown) does not exist
Hint: No function matches the given name and argument types. You might need to add explicit type
casts.
休眠代码为:
Session session = sessionFactory.getCurrentSession();
StoredProcedureQuery query = session
.createStoredProcedureQuery("property.fn_pt_assessment_register_report")
.registerStoredProcedureParameter(1, Integer.class, ParameterMode.IN)
.registerStoredProcedureParameter(2, java.util.Date.class, ParameterMode.IN)
.registerStoredProcedureParameter(3, java.util.Date.class, ParameterMode.IN)
.setParameter(1, (int)qryprm.get("ULBID"))
.setParameter(2, ((java.util.Date)qryprm.get("FROMDATE")))
.setParameter(3, ((java.util.Date)qryprm.get("TODATE")));
Boolean b = query.execute();
return query.getResultList();
日期格式转换:
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
try {
qryprm.put("FROMDATE", (sdf.parse((String)qryprm.get("FROMDATE"))));
qryprm.put("TODATE", (sdf.parse((String)qryprm.get("TODATE"))));
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
答案 0 :(得分:0)
您的日期可能不完全正确,因为JSF在日期中增加了小时时间。尝试使用新的SimpleDateFormat(“ dd / MM / yyyy”)进行格式化。在这种情况下,我使用'dd / MM / YYYY',因为我的dateStyle是欧洲的,因此您必须调整为自己的。