spring中使用HibernateTemplate或HibernateDaoSupport报类型转换错误
Posted lxjshuju
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring中使用HibernateTemplate或HibernateDaoSupport报类型转换错误相关的知识,希望对你有一定的参考价值。
使用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 }); }
以上是关于spring中使用HibernateTemplate或HibernateDaoSupport报类型转换错误的主要内容,如果未能解决你的问题,请参考以下文章
在 Spring MVC 中使用 Spring 的 DomainClassConverter 的问题
在 Spring 3.1.0 中使用 Spring Data JPA
如何在 Spring webflux 应用程序中使用 Spring WebSessionIdResolver 和 Spring Security 5?