javax.transaction.Transactional vs org.springframework.transaction.annotation.Transactional
Verstehe ich nicht, was ist der eigentliche Unterschied zwischen Annotationen javax.transaction.Transactional
und org.springframework.transaction.annotation.Transactional
?
Ist org.springframework.transaction.annotation.Transactional
eine Erweiterung der javax.transaction.Transactional
oder haben Sie völlig andere Bedeutung? Wann sollte jeder von Ihnen werden verwendet? Frühjahr @Transactinal
im service-layer und javax in DAO?
Vielen Dank für die Beantwortung.
InformationsquelleAutor der Frage stamis | 2014-10-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Frühjahr definiert seine eigenen Transactional annotation zu machen Spring-bean-Methoden Transaktions-Jahren.
Java EE 7 hat schließlich das gleiche getan und erlaubt nun die CDI-bean-Methoden werden Transaktions -, neben EJB-Methoden. Also da Java EE 7, es definiert auch seine eigenen Transactional annotation (es kann natürlich nicht die Wiederverwendung der Feder ein).
Im Java-EE-7-Anwendung, die Sie verwenden die Java-EE-Annotationen.
In eine Spring-Anwendung, die Sie verwenden werden, die Spring-annotation.
Deren Einsatz ist die gleichen: Information der container (Java EE oder Spring) , eine Methode transaktional ist.
InformationsquelleAutor der Antwort JB Nizet
Weiterer Unterschied ist, wie der Frühling übernimmt die @Transactional-Annotationen
javax.ejb.TransactionAttribute
ist erhältlich in den Klassenpfad (ab version 2.5.3 3.2.5).So können Sie am Ende mit Ihren Anmerkungen nicht berücksichtigt, wenn nur
javax.transaction.Transactional
ist in den classpath und nichtjavax.ejb.TransactionAttribute
.Dies kann der Fall sein, wenn Sie arbeiten mit Hibernate: hibernate-core (4.3.7.Final) hängt von der jboss-Transaktion-api_1.2_spec (1.0.0.Finale), die nicht
javax.ejb.TransactionAttribute
.InformationsquelleAutor der Antwort Jidehem
Bitte vorsichtig sein, (dieses Problem passiert in tomcat),
Wenn Ihre Anwendung ist FRÜHLING web-Anwendung mit Spring transaction-handling-Mechanismus, der
@org.springframework.transaction.annotation.Transactional
dann nicht mischen Sie es mit javax.die Transaktion.Transactional.Dass Immer verwenden,
@org.springframework.transaction.annotation.Transactional
in eine spring-Anwendung konsequent.Ansonsten können wir am Ende mit diesem Fehler,
InformationsquelleAutor der Antwort Lyju I Edwinson