2015-09-30 30 views
5

Próbuję zaktualizować wersję hibernacji zPrzełączanie z wersji 4.3.11.Final do 5.0.1.Final powoduje błąd kompilacji

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

do

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

Niestety przez kompilacji otrzymuję następujący błąd.

TestDao.java:[5,25] Nie można odnaleźć symbol

[ERROR] symbol: Klasa transakcyjna

[ERROR] Lokalizacja: Pakiet javax.transaction

mam borykałem się z tym od ponad godziny.

Próbowałem dodać pakiet spring-tx, ale to nie pomogło.

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

Czy ktoś miał podobny problem?

+0

Czy używasz adnotacji transakcyjnej spring lub jee7? –

+0

Używam 'javax.transaction.Transactional', więc JEE7. – Jagger

Odpowiedz

4

spring-tx daje org.springframework.transaction.annotation.Transactional, ale komunikat o błędzie jasno stwierdza, że ​​próbujesz zastosować javax.transaction.Transactional.

Searching for javax.transaction.Transactional on Central pokazuje liczbę kandydatów; albo javax.transaction:javax.transaction-api:1.2 lub javax:javaee-api:7.0 wygląda na rozsądną opcję.

Wydaje się, że the POM for Hibernate 4.3 zrobił to zależność na JBoss specyficznej wersji pakietu javax.transaction jednak, że została ona usunięta w Hibernate 5.0, przypuszczalnie dlatego, że zostały znormalizowane i tym ciężkim uzależnieniu od konkretnego pakietu mogłoby spowodować problemy W czasie wykonywania.

+0

Jak to działa, że ​​działa płynnie z wersją 4.3.11.Final? – Jagger

+0

To zadziałało! Dzięki za pomoc! – Jagger

+0

Po prostu przełączyłeś się na adnotację wiosenną lub dodałeś nową zależność w swoim pom? – TheBakker