1. 程式人生 > >spring中使用HibernateTemplate或HibernateDaoSupport報類型轉換錯誤

spring中使用HibernateTemplate或HibernateDaoSupport報類型轉換錯誤

select use can ria sel pop size ack trac

使用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報類型轉換錯誤