将hibernate从3.2.4.sp1升级到合适的版本

时间:2013-07-03 14:35:35

标签: java hibernate java-ee java-ee-6 java-7

请提供一些有助于将hibernate版本3.2.4.sp1升级到合适版本的详细信息。

我们已经更新了Java运行时,服务器操作系统和数据库服务器以及源代码中的一些细微更改。

以下是我的Java Swing应用程序的详细信息。

  • 应用程序使用Java Web-start技术,该技术与在Tomcat 7上运行的Servlet进行通信。
  • 该应用程序是在8 - 9年前创建的。到目前为止,我们一直在加强和修复应用程序。
  • DB是SQL Server 2012。
  • 服务器计算机:Windows 64位2008 R2 Enterprise Server
  • Java 7更新25 64位
  • 数据库驱动程序:jtds-1.2
  • Ehcache版本1.2.3

观察结果如下:

  • 项目中没有ehcache.xml文件。
  • 我们没有在Entity类或应用程序的任何其他部分中使用任何注释。
  • 发现Ehcache 1.7.2及更高版本在运行时支持Java 1.5和1.6。
  • 发现ehcache有时会造成死锁,不确定版本,但请访问以下链接:http://jira.terracotta.org/jira/browse/EHC-918

以下是我的hibernate.cfg.xml供参考:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
        <property name="connection.url">jdbc:jtds:sqlserver://<ip>:<port>/TestDB</property>
        <property name="connection.username">username</property>
        <property name="connection.password">password</property>
        <property name="hibernate.jdbc.batch_size">10</property> 
        <property name="c3p0.acquire_increment">1</property>
        <property name="c3p0.max_size">5</property> 
        <property name="c3p0.max_statements">0</property> 
        <property name="c3p0.min_size">3</property> 
        <property name="c3p0.timeout">20</property> <!-- seconds -->
        <property name="c3p0.idle_test_period">60</property> <!-- seconds --> 
        <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
        <property name="show_sql">false</property>
        <property name="format_sql">true</property>
        <property name="use_sql_comments">true</property>
        <property name="generate_statistics">true</property>
        <property name="hibernate.connection.provider_class">somepackage.C3P0ConnectionProvider</property>
        <!-- Followed by our entity class mapping -->
        <mapping resource="Batch.hbm.xml"/>
    </session-factory>  
</hibernate-configuration>

在这里我们没有指定二级hibernate缓存,但我相信我们在ehcache-1.2.3.jar中使用了一些类作为缓存提供者,因为它在类路径中。当我浏览hibernate更改日志时,我可以看到默认缓存提供程序在某些版本中有所不同。

我们在当前版本的应用程序中遇到了一些性能和死锁问题。

请告诉我一个合适的hibernate版本,以便我可以毫无问题地升级到它。

1 个答案:

答案 0 :(得分:0)

<modelVersion>4.0.0</modelVersion>
<groupId>com.ranga</groupId>
<artifactId>HibernateApp2</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>HibernateApp2</name>
<url>http://maven.apache.org</url>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- JBoss repository for Hibernate -->
<repositories>
    <repository>
        <id>JBoss repository</id>
        <url>http://repository.jboss.org/nexus/content/groups/public/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.2</version>
        <scope>test</scope>
    </dependency>

    <!-- Hibernate framework -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.1.12.Final</version>
    </dependency>

    <dependency>
        <groupId>javassist</groupId>
        <artifactId>javassist</artifactId>
        <version>3.12.1.GA</version>
    </dependency>

    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-ehcache</artifactId>
        <version>4.1.12.Final</version>
    </dependency>

    <dependency>
        <groupId>net.sf.ehcache</groupId>
        <artifactId>ehcache-core</artifactId>
        <version>2.4.0</version>
    </dependency>

    <dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib</artifactId>
        <version>2.2.2</version>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.5</version>
    </dependency>                         
</dependencies>