[SPRING] JPA / JTA / @ Transactional Spring 주석
SPRINGJPA / JTA / @ Transactional Spring 주석
Spring 프레임 워크를 사용하여 트랜잭션 관리를 읽는다. 첫 번째 조합에서는 Spring + hiberante를 사용하고 Hibernate의 API를 사용하여 트랜잭션을 제어했습니다 (Hibenate API). 다음으로 @Transactional 주석을 사용하여 테스트하고 싶었지만 제대로 작동했습니다.
나는 혼란스러워지고있다 :
나는 나의 의심을 분명히하기 위해 온라인으로 읽지 만, 나는 직접적인 대답을 얻지 못한다. 모든 입력은 큰 도움이 될 것입니다.
해결법
-
==============================
1.@ JPA를 사용하는 Spring-> Hibernate의 경우 트랜잭션
@ JPA를 사용하는 Spring-> Hibernate의 경우 트랜잭션
@ Transactional Annotations는 분리 할 수없는 모든 작업 주위에 배치해야합니다.
예를 들어 보겠습니다.
두 모델, 즉 국가 및 도시가 있습니다. 국가와 도시 모델의 관계형 매핑은 마치 하나의 국가가 여러 도시를 가질 수 있으므로 매핑이 비슷하기 때문에,
@OneToMany(fetch = FetchType.LAZY, mappedBy="country") private Set<City> cities;
이 곳은 게으른 사람들과 함께 여러 도시로 매핑되어 있습니다. 그래서 우리가 데이터베이스에서 Country 객체를 가져올 때 @Transactinal의 역할이옵니다. 그런 다음 Country 객체의 모든 데이터를 가져 오지만 LAZILY 도시를 가져 오기 때문에 도시 집합을 가져 오지 못합니다.
//Without @Transactional public Country getCountry(){ Country country = countryRepository.getCountry(); //After getting Country Object connection between countryRepository and database is Closed }
우리가 국가 객체로부터 도시 집합에 접근하기를 원할 때 Set의 객체가이 객체를 초기화하기 위해 초기화되지 않기 때문에 Set에 null 값을 가져올 것입니다 Set의 값을 얻기 위해 @Transactional 즉,
//with @Transactional @Transactional public Country getCountry(){ Country country = countryRepository.getCountry(); //below when we initialize cities using object country so that directly communicate with database and retrieve all cities from database this happens just because of @Transactinal Object object = country.getCities().size(); }
기본적으로 @Transactional은 하나의 트랜잭션으로 여러 개의 통화를 할 수 있습니다.
희망이 당신에게 도움이 될 것입니다.
from https://stackoverflow.com/questions/26611173/jpa-jta-transactional-spring-annotation by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 일치하는 와일드 카드는 엄격하지만 'tx : annotation-driven'요소에 대한 선언을 찾을 수 없습니다. (0) | 2018.12.15 |
---|---|
[SPRING] Spring 3.1 상속을위한 Hibernate 4 예외 [org.hibernate.mapping.RootClass에 캐스트 할 수 없음] (0) | 2018.12.15 |
[SPRING] Hibernate 질의 결과를 커스텀 클래스에 매핑? (0) | 2018.12.15 |
[SPRING] WebServiceTemplate을 사용하여 SOAP 요청을 보내는 방법은 무엇입니까? (0) | 2018.12.15 |
[SPRING] Spring 4.0.0과 최대 절전 모드 4.30의 호환성 [duplicate] (0) | 2018.12.15 |