【问题标题】:Hibernate versioning with OracleDB 11g "_" invalid character使用 OracleDB 11g“_”无效字符的休眠版本控制
【发布时间】:2012-11-16 12:30:18
【问题描述】:

将休眠与 Oracle db 11g express edition release 2 结合使用。

例如,当对表“Organizations”使用注解@Versioned时,

hibernate 似乎试图用一些列创建一个表Public.Organizations_versions

问题是其中一些列(_revision_revision_type)以下划线开头 并且 Oracle db 不允许创建包含以下划线开头的列的表。

有什么解决办法吗?

谢谢。

【问题讨论】:

  • 这个@Versioned 注解似乎来自hibernate envers
  • 我使用 Envers 和 Oracle 数据库没有问题。您使用的不是非常旧的 Envers 版本吗?
  • 目前尝试使用hibernate的setNamingStrategy没有成功

标签: java database hibernate oracle11g versioning


【解决方案1】:

更改您的 Envers 版本。 如果我记得,版本 1.0.0 是一个非常古老的版本。 至少使用:

1.2.2.GA-hibernate3.3

这是Envers FAQ 的摘录:

对于当前的 Hibernate-4/3.6 兼容版本,您应该使用新的组和工件 ID。使用这个依赖:

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-envers</artifactId>
  <version>4.1.0-Final</version>
</dependency>

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-envers</artifactId>
  <version>3.6.10-Final</version>
</dependency>

(您希望将版本号与例如 hibernate-core 和 hibernate-entitymanager 匹配)

如果您想使用较旧的 Hibernate-3.3 兼容版本,请使用旧组和工件,将此依赖项添加到您的 pom.xml:

<dependency>
  <groupId>org.jboss.envers</groupId>
  <artifactId>jboss-envers</artifactId>
  <version>1.2.2.GA-hibernate-3.3</version>
</dependency>

【讨论】:

  • 最后,升级hibernate
猜你喜欢
  • 1970-01-01
  • 2012-10-03
  • 2011-07-27
  • 2010-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-14
相关资源
最近更新 更多