[SPRING] javax.transaction.Transactional 대 org.springframework.transaction.annotation.Transactional
SPRINGjavax.transaction.Transactional 대 org.springframework.transaction.annotation.Transactional
주석 javax.transaction.Transactional과 org.springframework.transaction.annotation.Transactional 사이의 실제 차이점을 이해할 수 없습니다.
org.springframework.transaction.annotation.Transactional은 javax.transaction.Transactional의 확장인가 아니면 전혀 다른 의미입니까? 각각을 사용해야하는시기는 언제입니까? Spring은 서비스 계층에서 @ Transactional이고 DAO에서는 javax을 사용합니까?
대답 해줘서 고마워.
해결법
-
==============================
1.Spring은 몇 년 전에 Spring bean 메소드를 트랜잭션 방식으로 만들기 위해 자체 Transactional 어노테이션을 정의했다.
Spring은 몇 년 전에 Spring bean 메소드를 트랜잭션 방식으로 만들기 위해 자체 Transactional 어노테이션을 정의했다.
Java EE 7은 마침내 똑같은 일을 마쳤으며 이제 EJB 메소드 외에도 CDI bean 메소드가 트랜잭션이 가능하게되었습니다. 따라서 Java EE 7 이후로는 자체 트랜잭션 주석을 정의합니다 (분명히 Spring을 재사용 할 수 없음).
Java EE 7 응용 프로그램에서는 Java EE 주석을 사용합니다.
Spring 애플리케이션에서는 Spring 어노테이션을 사용한다.
그것들의 사용법은 컨테이너 (Java EE 또는 Spring)에 트랜잭션 방식이라는 것을 알리는 것과 동일합니다.
-
==============================
2.또 다른 차이점은 Spring이 @Transactional 어노테이션을 처리하는 방법이다.
또 다른 차이점은 Spring이 @Transactional 어노테이션을 처리하는 방법이다.
-
==============================
3.조심하십시오. (이 문제는 바람둥이에서 발생했습니다.)
조심하십시오. (이 문제는 바람둥이에서 발생했습니다.)
응용 프로그램이 SPRING 웹 응용 프로그램이고 Spring의 트랜잭션 처리 메커니즘 인 @ org.springframework.transaction.annotation.Transactional을 사용하는 경우 javax.transaction.Transactional과 혼합하지 마십시오.
항상 Spring 애플리케이션에서 @ 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]
from https://stackoverflow.com/questions/26387399/javax-transaction-transactional-vs-org-springframework-transaction-annotation-tr by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 왜 서비스 계층을 사용합니까? (0) | 2018.12.22 |
---|---|
[SPRING] Spring RESTTemplate을 사용하는 Generics (0) | 2018.12.22 |
[SPRING] Spring MVC 컨트롤러에서 Spring 데이터 투영을 적용하는 방법은 무엇입니까? (0) | 2018.12.22 |
[SPRING] Spring Data JPA에서 엔터티 상속을 처리하는 가장 좋은 방법 (0) | 2018.12.22 |
[SPRING] 로그에 Spring 트랜잭션 표시하기 (0) | 2018.12.22 |