Programing

javax.transaction.Transactional 및 org.springframework.transaction.annotation.Transactional

crosscheck 2020. 8. 2. 17:25
반응형

javax.transaction.Transactional 및 org.springframework.transaction.annotation.Transactional


주석 javax.transaction.Transactional의 실제 차이점이 무엇인지 이해하지 못합니다 org.springframework.transaction.annotation.Transactional.

인가 org.springframework.transaction.annotation.Transactional의 확장 javax.transaction.Transactional또는 완전히 다른 의미를 가지고? 각각 언제 사용해야합니까? @Transactinal서비스 계층의 스프링 DAO의 javax ?

대답 해줘서 고마워.


Spring은 몇 년 전 Spring bean 메소드를 트랜잭션 방식으로 만들기 위해 자체 트랜잭션 주석을 정의했습니다.

Java EE 7은 마침내 동일한 작업을 수행했으며 이제 EJB 메소드 외에도 CDI Bean 메소드를 트랜잭션 처리 할 수 ​​있습니다. 따라서 Java EE 7부터 자체 트랜잭션 주석도 정의합니다 (Spring 주석을 재사용 할 수는 없음).

Java EE 7 응용 프로그램에서는 Java EE 주석을 사용합니다.

Spring 애플리케이션에서는 Spring 주석을 사용합니다.

컨테이너 (Java EE 또는 Spring)에 메소드가 트랜잭션임을 알리는 사용법도 동일합니다.


또 다른 차이점은 Spring이 @Transactional 주석을 처리하는 방법입니다

  • org.springframework.transaction.annotation.Transactional 은 항상 고려됩니다
  • javax.transaction.Transactional 은 EJB3 트랜잭션이 존재하는 경우에만 고려됩니다. EJB3 트랜잭션의 존재는 javax.ejb.TransactionAttribute클래스 경로에서 클래스 가 사용 가능한지 (버전 2.5.3에서 3.2.5까지) 확인하여 수행됩니다 . 따라서 javax.transaction.Transactional클래스 패스 에만 있고 아닌 경우 주석을 고려 하지 않을 수 javax.ejb.TransactionAttribute있습니다. Hibernate로 작업하는 경우에 해당 할 수 있습니다 : hibernate-core (4.3.7.Final)는 jboss-transaction-api_1.2_spec (1.0.0.Final)에 의존하지 않습니다 javax.ejb.TransactionAttribute.

조심하십시오 (이 문제는 바람둥이에서 발생했습니다)

응용 프로그램이 SPRING 웹 응용 프로그램이고 Spring의 트랜잭션 처리 메커니즘 인을 @org.springframework.transaction.annotation.Transactional사용하는 경우 javax.transaction.Transactional과 혼합하지 마십시오.

@org.springframework.transaction.annotation.Transactional스프링 애플리케이션에서 항상 일관되게 사용됩니다.

그렇지 않으면이 오류가 발생할 수 있습니다.

org.springframework.orm.jpa.JpaSystemException: commit failed; nested exception is org.hibernate.TransactionException: commit failed

........

Caused by: java.sql.SQLException: Protocol violation: [0]

참고 : https://stackoverflow.com/questions/26387399/javax-transaction-transactional-vs-org-springframework-transaction-annotation-tr

반응형