我在SQL Server数据库中有一个存储过程。我试图从java代码调用它。我正在使用hibernate SQLQuery来调用该过程。我可以调用并正确获得结果。但是,如果我尝试将结果映射到实体,我将获得Hibernate异常。
我尝试使用不同类型的id。尝试使用long
,Long
,String
。但是一切都给出了同样的错误。
org.hibernate.PropertyAccessException:IllegalArgumentException 调用setter时发生的 com.myapp.reports.service.ProcBean.id
以下是我调用该过程的方法。
List list = sessionFactory.getCurrentSession().createSQLQuery("{CALL SummaryReport(:ids, :EventDescriptionId, :DateFrom, :DateTo)}")
.setParameter("ids","155")
.setParameter("EventDescriptionId","299")
.setParameter("DateFrom","2014-04-01")
.setParameter("DateTo", "2014-05-01")
.setResultTransformer(Transformers.aliasToBean(ProcBean.class))
.list();
实体:
public class ProcBean {
private Long id;
private Long total;
private Double average;
private Long minimum;
private Long maximum;
private Long startVal;
private Long endVal;
//and the setters
}