Hibernate 的问题

码农の视界 2010-09-17 10:17:54
刚学习Hibernate做的一个例子,但总是提示:Provided id of the wrong type. Expected: class java.lang.String, got class java.lang.Integer。我百度过是说:【提供了错误的id类型,期待一个Integer类型,却得到一个String类型】不知道怎么解决哈。
代码如下:
【BaseDaoHbm类】

/**
* 得到一个对象,根据ID
* @param clazz
* @param id
* @return
*/
public Object get(Class clazz, Serializable id) {
try {
Object item = getSession().get(clazz, id);
return item;
} catch (RuntimeException re) {
throw re;
}finally {
HibernateSessionFactory.closeSession();
}
}


【测试类】

/**
* @param args
*/
public static void main(String[] args) {
BaseDaoHbm bHbm = new BaseDaoHbm();
Member member = (Member) bHbm.get(Member.class, 1);
System.out.println(member.getUserId());
}



...全文
70 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaoqiang4153 2010-09-18
  • 打赏
  • 举报
回复
hbm.xml 的id属性配置成了string或者class文件的ID属性是string
wonderfu9527 2010-09-18
  • 打赏
  • 举报
回复
问题基本上已经被你们解决了。
wzju64676266 2010-09-17
  • 打赏
  • 举报
回复
两个可能,一个是Member 对象的id是String类型,还有一个可能是映射文件配置成String了
wypbt1032 2010-09-17
  • 打赏
  • 举报
回复
Member member = (Member) bHbm.get(Member.class, 1);
此处传的id类型必须和member中id的类型一致;看错误应该是你Member 中id定义成String;
但是这里传的是1是基本类型,JDK自动包装成Integer类型的;改成"1"就好了 ;
还有LZ说
我百度过是说:【提供了错误的id类型,期待一个Integer类型,却得到一个String类型】
其实正确地翻译应该是:【提供了错误的id类型,期待一个String类型,却得到一个Integer类型】
lhbwrh 2010-09-17
  • 打赏
  • 举报
回复
get(Class clazz, Serializable id) // Serializable .... 这个是integer ?

81,092

社区成员

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

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