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

Jag*_*ger 7 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>
Run Code Online (Sandbox Code Playgroud)

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.0.1.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

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

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

[错误]符号:类Transactional

[错误]位置:包javax.transaction

我一直在努力工作一个多小时了.

我试过添加包spring-tx但它没有帮助.

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>4.2.1.RELEASE</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

有没有人面临类似的问题?

chr*_*ke- 6

spring-tx给你org.springframework.transaction.annotation.Transactional,但你的错误信息清楚地表明你正在尝试申请javax.transaction.Transactional.

搜索javax.transaction.Transactional中心显示了一些候选人; 无论是javax.transaction:javax.transaction-api:1.2javax:javaee-api:7.0看起来像一个合理的选择.

看来,Hibernate 4.3的POM确实包含了对JBoss特定版本的javax.transaction包的依赖,但它在Hibernate 5.0中被删除了,大概是因为它已被标准化并且包含对特定包的硬依赖可能导致问题运行.