【问题标题】:How to run Spring boot with older version of hibernate如何使用旧版本的休眠运行 Spring Boot
【发布时间】:2017-12-30 05:42:30
【问题描述】:

我正在使用 spring boot 1.5 创建一个全新的项目,其中包含一个依赖实体模块(早在 2012 年就创建了)。

实体模块正在使用旧版本的休眠( 3.3.2 ),我不能 修改实体模块。

实体模块正在使用以下注释,该注释已被 Hibernate5 删除(Spring Boot 1.5 默认提供)

CollectionOfElements
MapKey
@ForeignKey
@IndexColumn

我知道我们可以在 Spring Boot 中使用不同版本的 jar,我尝试通过覆盖但它不起作用

任何帮助或指导都将受到高度评价,非常感谢

<!-- HIBERNATE OLDER VERSION COMPATIBILITY -->
        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-annotations -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-annotations</artifactId>
            <version>3.4.0.GA</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>3.1.0.GA</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate -->
        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>3.3.2.GA</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>3.3.2.GA</version>
        </dependency>

【问题讨论】:

标签: java spring jpa spring-boot spring-data-jpa


【解决方案1】:

您应该使用属性来覆盖依赖项版本,但是不能保证给定版本的 Spring Boot 将适用于其依赖项之一的旧版本。

Here,可以看到Spring Boot 1.5.9的依赖版本属性列表:

<properties>
    <!-- Dependency versions -->
    <activemq.version>5.14.5</activemq.version>
    <antlr2.version>2.7.7</antlr2.version>
    <appengine-sdk.version>1.9.59</appengine-sdk.version>
    <artemis.version>1.5.5</artemis.version>
    <aspectj.version>1.8.13</aspectj.version>
    <assertj.version>2.6.0</assertj.version>
    <atomikos.version>3.9.3</atomikos.version>
    <bitronix.version>2.1.4</bitronix.version>
    <caffeine.version>2.3.5</caffeine.version>
    <cassandra-driver.version>3.1.4</cassandra-driver.version>
    <classmate.version>1.3.4</classmate.version>
    <commons-beanutils.version>1.9.3</commons-beanutils.version>
    <commons-collections.version>3.2.2</commons-collections.version>
    <commons-codec.version>1.10</commons-codec.version>
    ...

对于 Hibernate,你可以使用类似这样的东西来覆盖它的版本:

<properties>
    <hibernate.version>3.3.2.GA</hibernate.version>
    <hibernate-validator.version>3.1.0.GA</hibernate-validator.version>
</properties>

【讨论】:

  • 什么不起作用?它是否未能覆盖 Hibernate 版本? `mvn dependency:tree` 打印什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-08
  • 2020-11-07
  • 2021-03-25
相关资源
最近更新 更多