Hibernate初始SessionFactory创建失败

时间:2010-06-15 11:47:56

标签: java hibernate jsf liferay

我正在尝试使用hibernate来填充selectonemenu中的jsf ApplicationBean(在Liferay中)。问题是我的初始SessionFactory创建失败问题。在将我的函数放入applicationbean之前,我在sessionbean中设置它们并且没有错误。

现在是完整的错误

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

2 个答案:

答案 0 :(得分:8)

您很可能在某处VARCHARVERSION,而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)中所述:

  

版本号可以是Hibernate类型longintegershorttimestampcalendar

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

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

答案 1 :(得分:1)

您映射为类的版本的某个域类的属性是string类型。这不是版本的有效类型。更改内容取决于您在底层数据库中实现版本控制的方式。