一个困扰了 3天的问题,请帮帮忙.

tomorrow619810 2010-08-09 12:27:26
执行这句话是报错了 , 真的查不到原因,请帮忙
BooksIn =(Books) session.get(Books.class, bookId);
报错:
Hibernate: select books0_.book_Id as book1_0_0_, books0_.book_name as book2_0_0_, books0_.book_Author as book3_0_0_, books0_.book_publish as book4_0_0_, books0_.book_date as book5_0_0_, books0_.book_isbn as book6_0_0_, books0_.book_page as book7_0_0_, books0_.book_price as book8_0_0_, books0_.book_content as book9_0_0_ from books books0_ where books0_.book_Id=?
2010-8-8 22:46:35 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at org.hibernate.type.IntegerType.set(IntegerType.java:41)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:83)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:65)
at org.hibernate.loader.Loader.bindPositionalParameters(Loader.java:1514)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1576)
at org.hibernate.loader.Loader.doQuery(Loader.java:661)

我也知道是 类型转换出错了,就是不知道出错在那里啊 ,
Hibrnate 的books类和数据库中的类型是一致的,并且数据库中的数据的类型也没有问题,
就是不知道怎么改了 ,
老鸟 帮助下!
...全文
240 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
duanwz 2010-08-09
  • 打赏
  • 举报
回复
学习.
Canny 2010-08-09
  • 打赏
  • 举报
回复
java.lang.String cannot be cast to java.lang.Integer
映射文件里字段的类型 和数据库的类型不一样 你看映射文件 吧
yinzisheng 2010-08-09
  • 打赏
  • 举报
回复
看错误异常 应该是类型转换异常。。你看看你的配置文件中的字段和数据库中的字段的类型一样不
zhaicheng18 2010-08-09
  • 打赏
  • 举报
回复
哎 现在还在学习啊 会了再说 呵呵
wuzhen8449397 2010-08-09
  • 打赏
  • 举报
回复
学习!11
jimesum1 2010-08-09
  • 打赏
  • 举报
回复
你贴的代码太少了,不过看错误应该是
BooksIn =(Books) session.get(Books.class, bookId);
这里取到的bookId应该是String类型,再丢给数据库的时候应该转成int类型
chuchuzinnia 2010-08-09
  • 打赏
  • 举报
回复
yes.I agree.
kala197 2010-08-09
  • 打赏
  • 举报
回复
java.lang.String cannot be cast to java.lang.Integer
映射文件里字段的数据类型 和数据库的设定的是不是一样啊 检查下
myhope88 2010-08-09
  • 打赏
  • 举报
回复
还是仔细检查一下没有类型一致,应该是哪个地方的类型出问题了
coolbamboo2008 2010-08-09
  • 打赏
  • 举报
回复
同意三楼,再仔细看看
java_running 2010-08-09
  • 打赏
  • 举报
回复
lz 你应该把你vo 对象 和 配置文件都贴出来
angel21li 2010-08-09
  • 打赏
  • 举报
回复
应该是某个字段映射类型不一致
liang__ 2010-08-09
  • 打赏
  • 举报
回复
bookid你这个参数和你的数据库里的不一致
jovinxsh 2010-08-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 angel21li 的回复:]

应该是某个字段映射类型不一致
[/Quote]
。。。。。
Inhibitory 2010-08-09
  • 打赏
  • 举报
回复
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
看看你的映射文件,肯定是出错了,不要相信自己没错。
SLL324 2010-08-09
  • 打赏
  • 举报
回复
就是这句
Books in =(Books) session.get(Books.class, bookId);
应该是 你 这里的 bookId 的类型不对,你 这个 我不知道你从哪得到的,应该得到的是 String 型,你表里的类型应该是int 型吧,你在调用 get 方法的时候 实际应该是执行了查询语句 根据id 查找books对象 ,你 将 bookId 转 一下 Integer.valueOf(bookId)
jeffrey281 2010-08-09
  • 打赏
  • 举报
回复
帮不了
fix_huang 2010-08-09
  • 打赏
  • 举报
回复
这个很难回答的,没有具体一点的代码,而且看不到你的hibernate.hbm.xml配置文件,所以不知道你哪个字段的数据类型出错了,认真仔细点了,出去散散心,回来再检查一下。
itolgeqh 2010-08-09
  • 打赏
  • 举报
回复
帮不了忙
ronniegxq 2010-08-09
  • 打赏
  • 举报
回复
仔细看看
加载更多回复(4)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧