select *
from commanconfig.fn_cm_get_usage_statistics_progress(422,'1-nov-2019','27-nov-2019')
上述查询工作正常。
但是当我通过休眠调用该函数时,它的显示错误:-
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();
}
可能您的日期不完全正确,因为 JSF 将小时时间添加到日期中。尝试使用新的 SimpleDateFormat("dd/MM/yyyy"(进行格式化。在这种情况下,我使用'dd/MM/YYYY',因为我的日期风格是欧洲的,你必须适应你的。