天天看點

異常 --TypeMismatchException

從昨天晚上就一直遇到這個異常:感覺好怪,一條一條的找了很久 還是沒有解決:

org.hibernate.TypeMismatchException: Provided id of the wrong type for class  com.demo.pojo.Userinfo. Expected:       
class java.lang.Integer, got class java.lang.String;       
資料庫中并沒有int類型的字段,為什麼會這樣?      
一字一句的找了一晚上,模模糊糊知道是類型轉換為題,終于在今天找到解決方案咯^_-      
在DAO層 有這樣一個方法      
public EL_TransIdTable Find_ById(String name){
	  return this.hibernateTemplate.get(EL_TransIdTable.class, name);//通過domain來修改對應的lastId
		
	 }
           
平時是傳給hibernate int類型的id ,現在傳給他的是string類型的name 難道他不認識string類型的name?還是給他整容變成int類型了?      
public EL_TransIdTable Find_ById(String name){
		 String hql="select * from EL_TransIdTable el_t where el_t.DomainId='"+name+"'";
		 List list =this.hibernateTemplate.find(hql);
		 if(list.size()==0){
			 System.out.println("沒有此用戶");
			 return null;
		 }else{
			 EL_TransIdTable el_t=(EL_TransIdTable)list.get(0);
			 return el_t;
		 }
	 }
           
這樣子就不會報上訴異常了。……^_-