【问题标题】:Hibernate Initial SessionFactory creation failedHibernate Initial SessionFactory 创建失败
【发布时间】:2010-06-15 11:47:55
【问题描述】:

我正在尝试使用休眠将我的 jsf selectonemenu 填充到 ApplicationBean(在 Liferay 中)。问题是我遇到了 Initial SessionFactory 创建失败问题。在将我的函数放入 applicationbean 之前,我将它们设置在 sessionbean 中,我没有收到任何错误。

现在是完整的错误

Initial SessionFactory creation failed. 
java.lang.ClassCastException: org.hibernate.type.StringType cannot be cast to org.hibernate.type.VersionType

【问题讨论】:

    标签: java hibernate jsf liferay


    【解决方案1】:

    您很可能在某处有一个名为VERSIONVARCHAR 列,Hibernate 的逆向工程工具将其生成为:

    <version name="version" type="string">
        <column name="VERSION" length="20" />
    </version>
    

    代替:

    <property name="version" type="string">
        <column name="VERSION" length="20" />
    </property>
    

    前者是错误的。首先,我认为这不是你想要的。其次,5.1.9. Version (optional)一章中提到的版本字段不允许使用字符串:

    版本号可以是休眠类型longintegershorttimestampcalendar

    HHH-3002 以某种方式报告了这个问题(实际上,它应该分配给 Hibernate Tools,而不是 Hibernate Core),我看到了两种解决方法。要么

    • 手动修复映射
    • 将该列重命名为其他名称。

    【讨论】:

      【解决方案2】:

      您已映射为类版本的域类之一的属性是字符串类型。这不是版本的有效类型。将其更改为什么取决于您在底层数据库中实现版本控制的方式。

      【讨论】:

      • 看我正在使用 netbeans 来自动生成休眠配置和映射文件。有没有办法找到错误在哪里?
      猜你喜欢
      • 1970-01-01
      • 2014-10-24
      • 2015-01-03
      • 1970-01-01
      • 1970-01-01
      • 2019-08-16
      • 2014-10-02
      • 2013-03-09
      • 1970-01-01
      相关资源
      最近更新 更多