日期:2014-05-17  浏览次数:20820 次

Hibernate操作数据库 报错java.lang.Integer cannot be cast to java.lang.String怎么改
代码如下:
package HibernateSessionFactory;
import javax.transaction.HeuristicMixedException;
import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;
public class Insert {
public static void main(String[] args){
Configuration c=new Configuration();
Configuration cc=c.configure();
SessionFactory sf=cc.buildSessionFactory();
Session session=sf.openSession();
org.hibernate.Transaction ts=session.beginTransaction();
Book book=new Book();
book.setName("JAVA教程");
book.setPrice("40元");
book.setNum("A12-E12");
session.save(book);
ts.commit();
session.close();
}
}
本人新手 求助!
------最佳解决方案--------------------
public int getPrice(){
return this.id;
}
亲,这个.....
------其他解决方案--------------------
Book定义的代码也贴一下看看
------其他解决方案--------------------
book.setPrice("40元");
price是String类型的?
------其他解决方案--------------------
book.setNum("A12-E12");
num也是String类型的?
------其他解决方案--------------------
楼主太粗心了哦,属性的类型好好检查下,看你的实体中属性类型和你添加的值是否对应。
------其他解决方案--------------------
引用:
Book定义的代码也贴一下看看

package HibernateSessionFactory;

public class Book {
int id;
String name;
String price;
String num;
public int getId(){
return this.id;
}
public String getName(){
return this.name;
}
public int getPrice(){
return this.id;
}
public String getNum(){
return this.name;
}
public void setId(int id){
 this.id=id;
}
public void setName(String name){
 this.name=name;
}
public void setPrice(String price){
 this.price=price;
}
public void setNum(String num){
this.num=num;
}
}
book的代码 
------其他解决方案--------------------
引用:
book.setNum("A12-E12");
num也是String类型的?

是的呀 我是初学者 就是找人家的代码敲的一样的。。。。
------其他解决方案--------------------
亲,price是int型的,你给加一个String当然会出错啦。
------其他解决方案--------------------
引用:
public int getPrice(){
return this.id;
}
亲,这个.....

好吧 我经常犯这种错误 太感谢你了 把分数都给你!
------其他解决方案--------------------
引用:
引用:
public int getPrice(){
return this.id;
}
亲,这个.....
好吧 我经常犯这种错误 太感谢你了 把分数都给你!



在实体类内右键——Source——Generate Getters And Setters 可以直接生成的,能不写就不要写了,当然你要平时想练习的话随便啦~~