问题描述
我在spring中配置了自动扫描model层包的hibernate映射,但是昨天我加了权限认证类UsersRoles后,单元测试总显示org.hibernate.hql.ast.QuerySyntaxException: UsersRoles is not mapped,我在网上查了下,主要问题都集中在HQL语句中类小写,但是我自己核对了我的HQL语句,UsersRoles并没有写错,然后问题主要集中在了hibernate映射配置上,但是问题很奇怪,在model下的其他包都能映射,就只有UsersRoles不行,问题始终没有解决,所以希望各位指点一下。xml配置如下,<property name="packagesToScan"> <list> <value>com.sunshinez.oa.model</value> </list> </property>UsersRoles类import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.ManyToOne;@Entity(name="t_usersroles")public class UsersRoles {HQL语句为:"from UsersRoles u where u.user.userName = "+userName 问题补充:问题已经解决,有2个错误,一个是更改表名应该用@Table(name="t_usersroles"),我查了下api,貌似使用entity的value属性是更改类映射名,所以HQL后面应该用From t_usersroles,第二个错误在HQL里面,hql拼写错误,应该用.setParameter()来设置参数,直接加参数少了''。
解决方案
<value>com.sunshinez.oa.model.*</value> spring 一般喜欢这么干吧!