inflearn logo
강의

Course

Instructor

Backend in one day with Juju - Spring, Docker, AWS

4-4 [Restaurant] Developing Restaurant Update/Delete API

@Transactional 질문 있습니다!

275

SHYU

24 asked

0

안녕하세요

@Transactional 어노테이션을 클래스에다가 붙이면 안에 있는 메서드에 전부 적용되는 것으로 알고 있는데

쥬쥬님께서는 메서드 하나하나에 적용을 하시더라구요

 

혹시 메서드에 하나하나 달아주는 이유를 알 수 있을까요??

spring git docker spring-boot jpa github

Answer 2

0

jyujyu

안녕하세요. 지식공유자 쥬쥬입니다 !

 

개인의 취향에 따라 다르지만 저는 메소드에 @Transactional 어노테이션을 붙이는 것을 선호하는 편입니다. 이유는 메소드를 보았을 때 가시적으로 readOnly Transaction인지 아닌지, 확인할 수 있기 때문입니다.

 

만약 ReadOnly Transaction의 로직들과 아닌 것이 명확히 인터페이스(클래스)부터 분리되어있다면 클래스에 사용하는 것도 좋은 것 같습니다.

 

감사합니다 !

 

 

 

0

SHYU

답변 감사합니다~

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

네, @Transactional 어노테이션은 클래스 레벨 또는 메소드 레벨에 붙여서 사용할 수 있습니다. 클래스에 어노테이션을 붙이면 해당 클래스의 모든 메소드에 트랜잭션이 적용되지만, 메소드 레벨에 붙이면 특정 메소드에만 트랜잭션을 적용할 수 있어요.

메소드에 하나하나 @Transactional을 달아주는 이유는 트랜잭션을 세밀하게 제어하기 위해서입니다. 예를 들어, 일부 메소드는 읽기 전용으로 트랜잭션을 설정하여 성능을 최적화할 수 있고, 다른 메소드에서는 기본적인 트랜잭션 설정을 사용할 수 있습니다.

Spring Data JPA 문서에 따르면, 조회 작업의 경우 readOnly=true 설정을 통해 성능을 최적화할 수 있으며, 그 외의 작업들은 @Transactional을 통해 기본 트랜잭션 설정을 적용할 수 있습니다. 또한, 특정 메소드에 대해 트랜잭션 설정을 조정하려면 리포지토리 인터페이스에서 메소드를 재선언하고 @Transactional 설정을 변경할 수 있습니다.

이와 같이 메소드에 @Transactional을 달아주는 것은 상황에 따라 트랜잭션의 성능을 최적화하고, 필요에 따라 트랜잭션의 행동을 제어하기 위한 목적으로 사용됩니다.

참고하시면 도움이 될 것 같습니다:
- 문서 링크: Spring Data JPA - Reference Documentation

lombok 설정에서 오류가 발생해요

0

176

2

2 -1 lombok 설정에서 오류가 발생해요

0

224

3

서비스 메소드 작성 시 질문!

0

346

2

RestaurantApi 컨트롤러 개발 질문

0

275

2

변경데이터 저장 방법 질문 있습니다!

0

342

2

dto 관련 질문입니다.

0

388

2

이너 클래스 vs 클래스 별도 생성의 차이?

0

376

2

TestEntityApi중 createTestEntity에서 질문있습니다

0

228

2

ResponseBody 강의에서 클래스 생성 관련 질문드립니다.

0

225

2

2-3 진행 중 에러 발생

0

356

2

ReviewDto 객체 사용 이유

0

313

2

2-2 h2 console connect 관련 질문 드립니다.

0

296

1

소스작성중에서요 queryFactory중에?

0

415

3

docker에 관하여 질문 드립니다.

1

297

1

DTO, Request, Response 차이점

1

1274

1

TestRepositoryImpl 질문이요

3

317

1

pk, fk 연결

1

512

2

.gitignore 에 포함할 파일

0

1007

1

Spring Initializr 스프링 버전

0

262

1

2-4 수정중 오류

0

327

1

1-6 생성자 오류

1

265

2

2-3 진행중 에러

0

275

1

IP주소:8080/h2-console 을 했을때 404 에러가 발생합니다.

2

2599

1

맛집 수정 API 질문입니다

2

485

1