使用spring的HibernateDaoSupport的时候,报错如下:
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at org.hibernate.type.IntegerType.set(IntegerType.java:64)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:154)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:136)
实体类如下:
public class User
{
private int id;
private String name;
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
}
dao层的代码如下:
public void select(String id)
{
List result = this.getHibernateTemplate().find("from User where id=?",
new Object[] { id });
}
错误原因是:实体类中User类的id属性是Integer类型的,但是传递的查询条件id是String类型的。将string改成int类型,错误解决。
public void select(int id)
{
List result = this.getHibernateTemplate().find("from User where id=?",
new Object[] { id });
}