Hibernate + Spring框架项目映射错误(异常)

时间:2010-10-10 05:39:13

标签: java hibernate orm hibernate-mapping

引起:

  

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)

属性

3 个答案:

答案 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}}