hibernate中could not resolve property和is not mapped的问题

来源:互联网 发布:百度网盘会员破解mac 编辑:程序博客网 时间:2024/06/06 10:03

最近在学ssh,遇到了一些问题,这里我记录两个关于hibernate的问题。is not mapped表示映射出了错,在我写的删除语句:"from Role_right rr where rr.role_id = "+roleId,其中的role_right是数据库的表名,role_id是该表的一个字段名。我的相应配置文件代码是这样的:

<class name="cn.edu.scu.urims.common.entities.RoleRight" table="role_right" catalog="urims">

         <id name="roleRightId" type="java.lang.Integer">
                 <column name="role_right_id" />
                 <generator class="identity" />
        </id>

         <many-to-one name="role" class="cn.edu.scu.urims.common.entities.Role" fetch="select">
                 <column name="role_id" not-null="false" />
        </many-to-one>

</class>

当执行删除的时候,就报错说  is  not mapped。以前以为from后面直接跟表名,因为老师这么讲的,只是表名的第一个字母要大写,到现在出现错了才明白原因。hibernate查询的是映射的类名,而不是自己的表名,所以会出现映射出错。从这里看,红色字体才是hibernate的类名,因此查询的时候应该写RoleRight,而不是表名role_right。

这样子改了又出现了一个问题:could not resolve property。从字面上理解就是无法辨别的属性,其实和上面那个问题类似,都是在hibernate文件映射的时候出的问题,蓝色字为RoleRight的属性,而不是去查询表中的role_id字段,所以正确的查询语句应该是"fromRoleRight rr where rr.role = "+roleId,


0 0
原创粉丝点击