ssh整合系列博客——(1)spring和hibernate整合的异常解决

前言:

      本人最近一直在研究ssh框架,在ssh整合的过程中难免会遇到各种各样的问题,因此,本人打算写下一系列博客来记录ssh整合过程中锁收获到的点点滴滴,同时,希望本系列博客能够帮助到在java web开发中遇到ssh相关问题的朋友。

本项目整体采用的是基于Annotation的ssh整合开发

1.开发环境:tomcat 7.0 jdk 1.7 mysql 5.1

2.开发工具:myeclipse 10.0

3.ssh框架版本:struts2 2.1.6 + hibernate 3.0 + spring 2.5


初次将spring和hibernate整合时,遇到了如下的查询异常:

org.springframework.orm.hibernate3.HibernateQueryException: user is not mapped

很显然,根据异常提示可知:user没有被映射,异常代码如下:super.getHibernateTemplate().find("from user");

但是根据hql语句from user,检查不出来hql语句的错误,于是,在网上查找了很多资料,最终得以解决。


解决办法如下:

将hql语句改为from User就可以了,原因是在映射时user不是指数据库中的表名称,而是entity实体类的名称,所以应该和实体类User的名称一致为User

注:在hql语句中大小写敏感,而在mysql数据库中不区分大小写,这点一定要注意!!!


产生此异常的原因还可能有:

1.hbm.xml 没有在applicationContext.xml中配置如下:

<property name="packagesToScan">

<list>

<value></value>

</list>

</property>

2.find() 方法中的类名未写全

例如:

原来是:super.getHibernateTemplate().find("from user");

应该为:super.getHibernateTemplate().find("from com.model.User");





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值