새 응용 프로그램을 만들려고하고 있으며 사용하려는 계획에 대한 피드백을 받고 싶습니다. 우리는 봄과 봄 데이터 jpa를 사용할 것입니다.Spring Data JPA와의 트랜잭션 처리 방법은 무엇입니까?
컨트롤러는 도메인 서비스 및 리포지토리를 호출 할 수 있습니까? 아니면 컨트롤러가 응용 프로그램 및 인프라 서비스 만 호출해야합니까?
컨트롤러와 도메인 서비스 작업에서 도메인 서비스와 리포지토리를 호출하는 "ok"가 트랜잭션이 필요하면 도메인 서비스 방법에 @Transactional 주석을 추가 할 수 있습니까? 아니면 호출을 감싸는 응용 서비스가 있어야합니까? (이 접근법이 마음에 들지 않는 이유는 여러 가지 방법을 통해 통과하게 될 것이기 때문입니다)?
컨트롤러에서 도메인 서비스와 리포지토리를 호출하기 위해 "확인"되지 않으면 모든 가능한 도메인 서비스 호출을 감싸기 위해 응용 프로그램 서비스를 만들어야합니다 (2에서 말한 것처럼 메서드를 통과 할 수 있음) ?
-
이
저장소가 읽기 전용으로 설정 데이터베이스 및 전파에 기록 할 때 필수 전파와 @Transactional 주석을해야합니다 = true를
내가 가지고 올 수있는 가장 좋은 방법은 다음과 같은 것입니다 데이터베이스에서 읽을 때 SUPPORTS로 설정됩니다. 컨트롤러가 이제까지 저장소에 직접 호출 도메인 서비스 또는 할 수있는 응용 프로그램 서비스를 만들 수 있도록 할 필요가있는 경우
필요에 따라
응용 프로그램 및 도메인 서비스는 @Transactional 주석을 추가합니다. 통과하지 마라.
도메인 서비스는 실제 도메인을 처리하는 물건을 나타내며 응용 프로그램 서비스는 응용 프로그램이해야 할 물건을 처리합니다. 자세히 설명하는 게시물이 많이 있습니다. 여기 내가 처음 발견 한 것이 있습니다. http://stackoverflow.com/questions/3839386/domain-services-vs-application-services – testing123