Java Cent OS:Hibernate Envers错误REVINFO表不';不存在,但revinfo存在
在本地和我们以前的两个不同的服务器上,以小写字母表示的revinfo正常工作,但我有一个新服务器不工作,因为错误revinfo不存在 以前的服务器配置:Java Cent OS:Hibernate Envers错误REVINFO表不';不存在,但revinfo存在,java,mysql,hibernate,centos,Java,Mysql,Hibernate,Centos,在本地和我们以前的两个不同的服务器上,以小写字母表示的revinfo正常工作,但我有一个新服务器不工作,因为错误revinfo不存在 以前的服务器配置: OS : Cent OS 6.5 mysql : 5.5.40 hibernate jar: 4.1.7final jdk 1.7 OS : Cent OS 6.5 mysql : 5.5.40 hibernate jar: 4.1.7final jdk 1.7 当前服务器配置: OS : Cent OS 6.5 mysql : 5.5.4
OS : Cent OS 6.5
mysql : 5.5.40
hibernate jar: 4.1.7final
jdk 1.7
OS : Cent OS 6.5
mysql : 5.5.40
hibernate jar: 4.1.7final
jdk 1.7
当前服务器配置:
OS : Cent OS 6.5
mysql : 5.5.40
hibernate jar: 4.1.7final
jdk 1.7
OS : Cent OS 6.5
mysql : 5.5.40
hibernate jar: 4.1.7final
jdk 1.7
本地的
Os : windows
mysql : 5.5.40
hibernate jar: 4.1.7final
jdk 1.7
两个.war文件都是相同的
applicationContext.xml
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/testdb_trunk" />
<property name="username" value="root" />
<property name="password" value="root" />
<property name="minIdle" value="10" />
<property name="initialSize" value="10" />
<property name="validationQuery" value="SELECT 1 FROM DUAL"/>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="in.demo.server.datamodel" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">false</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
</props>
</property>
</bean>
错误的
org.hibernate.dialogue.mysqldialogue
提前感谢您必须尝试为您的hibernate属性提供一些附加属性
hibernate.ejb.naming_策略
,以使您的应用程序在不同的环境中表现相似
您可以在for
NamingStrategy
界面中阅读相关内容。它还有一些可用的实现:而且,您可以选择其中之一。或者您可以创建自己的实现。windows mysql默认不区分大小写,因此我添加了
lower_case_table_names = 1
在
/etc/mysql/my.cnfcent OS的文件
请参阅更多详细信息我没有在我的applicationContext中设置hibernate.ejb.naming_策略属性。xml@VishnuKatpure是的,你没有。但是,如果不提供此属性,不同操作系统下的hibernate可能会有不同的行为。看看这个问题,例如,正如我提到的os,mysql版本在以前和当前服务器上是相同的,通过做补丁工作将表revinfo重命名为revinfo;工作correctly@VishnuKatpure如果您的环境都是相同的,那么您从未遇到过这种异常。操作系统特有的行为只是一个例子。任何东西都可能导致这种情况,可能是Java版本,可能是应用程序版本或其他。要防止这种情况,必须设置命名策略。