【问题标题】:Hibernate+Spring framework project mapping error(exception)Hibernate+Spring框架项目映射错误(异常)
【发布时间】:2010-10-10 05:39:13
【问题描述】:

原因:

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)

【问题讨论】:

    标签: java hibernate orm hibernate-mapping


    【解决方案1】:

    原因: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>
    

    参考文献

    【讨论】:

    • 角色实际上是 Java DB 中的一个表。我有一个名为“Role”的 pojo 类,并且 Role 表有“roleid”(char)和“roletitle”(varchar)。
    • 这是我的映射类 ttp://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" rel="nofollow" target="_blank">hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    • @hasitha 编辑您的问题(底部有一个编辑链接)以发布您的 POJO 和映射。
    • @hasitha:如果您使用 Ctrl-K 缩进 XML,它将显示在文本中
    • @Pascal Thivent 不幸的是,我看不到您对 Scrum / Agile 的回复。我希望这周我有一些空闲时间。无论如何,UP
    【解决方案2】:

    Java 类的完全限定名称实际上是controler.Role 吗? Role 类的源代码是什么样的?是否在一个名为 controler 的包中?

    也许这个名字只是拼错了。

    【讨论】:

      【解决方案3】:

      <?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" type="int" column="ROLEID"> <generator class="increment"/> </id> <property name="title" column="TITLE"/> </class> </hibernate-mapping>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-06
        • 1970-01-01
        • 2016-02-15
        • 1970-01-01
        • 2018-05-18
        • 1970-01-01
        • 2012-03-11
        • 1970-01-01
        相关资源
        最近更新 更多