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());
}



...全文
47 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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 ?
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-09-17 10:17
社区公告
暂无公告