我收到上面的消息,即使我通过Integer传递给命名查询的值。 有谁能解释为什么? 感谢
DAO Java代码
Calendar cal = Calendar.getInstance();
cal.setTime(interval.getStartDate());
query.setParameter("academicYear", new Integer(cal.get(Calendar.YEAR)));
查询:
@NamedQuery(name = "StudentDemographics.findByMOEDEqual", query = "SELECT s.student FROM StudentDemographics s " +
"WHERE :academicYear = s.academicYear " +
"AND UPPER(s.MOED) like :MOED"),
错误: 参数值[2011]不匹配类型[java.lang.Integer]
环境是Spring w Hibernate / JQL + SQL Server
答案 0 :(得分:3)
我遇到了类似的问题,可以通过这种方式修复:
我使用长 int 作为相应字段的类型。