从版本4.3.11.Final切换到5.0.1.Final会导致编译错误

时间:2015-09-30 18:16:21

标签: java spring hibernate spring-data-jpa hibernate-5.x

我正在尝试从

升级我的Hibernate版本
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>4.3.11.Final</version>
</dependency>

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.0.1.Final</version>
</dependency>

不幸的是,通过编译我得到以下错误。

  

TestDao.java:[5,25]找不到符号

     

[ERROR]符号:class Transactional

     

[错误]位置:包javax.transaction

我现在已经挣扎了一个多小时了。

我尝试添加包spring-tx,但它没有帮助。

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>4.2.1.RELEASE</version>
</dependency>

有没有人遇到过类似的问题?

1 个答案:

答案 0 :(得分:6)

spring-tx为您提供org.springframework.transaction.annotation.Transactional,但您的错误消息明确指出您正在尝试应用javax.transaction.Transactional

Searching for javax.transaction.Transactional on Central显示了一些候选人; javax.transaction:javax.transaction-api:1.2javax:javaee-api:7.0似乎是一个合理的选择。

似乎the POM for Hibernate 4.3确实包含了对javax.transaction包的JBoss特定版本的依赖,但它在Hibernate 5.0中被删除了,可能是因为它已被标准化并包含对特定的包可能会在运行时导致问题。