引起:
org.hibernate.MappingException:无法确定类型:controler.Role,对于列:[org.hibernate.mapping.Column(ROLE)]
你可以帮我解决这个问题吗?
这是我的映射类
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="controler.Role" table="ROLE">
<id name="roleId" column="ROLEID">
<generator class="increment"/>
</id>
<property name="title" column="TITLE"/>
</class>
</hibernate-mapping>
Role是一个pojo类,我在JavaDB中有一个名为Role的相关表。角色表具有roleid(char)和roletitle(varchar)
属性答案 0 :(得分:3)
引起:org.hibernate.MappingException:无法确定:controler.Role的类型,对于列:[org.hibernate.mapping.Column(ROLE)]
我最初的假设是错误的。但是现在您提到了JavaDB,我怀疑ROLE
实际上是a reserved keyword。尝试将表名封装在映射文档中的反引号中:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="controler.Role" table="`ROLE`">
<id name="roleId" column="ROLEID">
<generator class="increment"/>
</id>
<property name="title" column="TITLE"/>
</class>
</hibernate-mapping>
答案 1 :(得分:0)
Java类的完全限定名称实际上是controler.Role
吗? Role
类的源代码是什么样的?它是在名为controler
的包中吗?
也许这个名字只是拼写错误。
答案 2 :(得分:0)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="controler.Role" table="
{ROLE {1}}