질문이 있습니다!
321
작성한 질문수 22
이번 강의에서 BookQuerydslRepository 클래스 작성할 때
@Component 어노테이션을 사용하셨는데요!
기존에 스프링 사용할 때는 @Repository 어노테이션을 주로 사용하였는데 @Component를 사용하는 이유가 있을까요?
제가 알기로는 @Repository 어노테이션을 사용하면 예외 발생시 JPA예외가 스프링 예외로 변환되어 발생하는 것으로 알고있습니다.
감사합니다.
답변 1
5
안녕하세요, 연어포케님~!!! 크으~ 매우매우 좋은 포인트이십니다!!! 😊
저는 역설적으로 @Repository 어노테이션을 사용하면 자동으로 예외가 변환되어 잘 사용하지 않는 편입니다...!
아시다시피, Querydsl을 적극적으로 활용하게 되면 Spring Data JPA와 다르게 함수를 직접 작성하게 되는데요! 그러다보니 Repository 단에서도 business 관련 예외를 던지기도 하고 Repository 단에서 던져질 것으로 생각했던 예외를 ControllerAdvice로 처리하거나 상황에 따라 Retryable을 걸기도 했었어요!
그런데 이때 @Repository 어노테이션을 붙이게 되면 이러한 처리 자체가 애매해지니 https://namocom.tistory.com/1025 와 같이 추가적인 작업을 해주어야 하는데 개인적으로는 번거로움이 조금 있더라고요 😢
또한 Repository의 예외 변환기를 100% 파악하지 못하고 있어 (어떤 예외가 어떻게 나오는지, 향후 버전에서는 혹시 어떤 예외가 추가되거나 제외될지 등등) 아예 속편하게 @Component를 사용하고 있었습니다 ㅎㅎㅎㅎ 역시 공부할게 참 많네요~!! 👍
다행히 @Component를 사용하며 1~2년 정도 지났는데, 아직까지는 이로 인한 큰 문제는 발생하지 않았어요! 너무 좋은 포인트 짚어주셔서 감사드리며 또 궁금한 점이 있으시다면 편하게 말씀해주세요~!!!
감사합니다 ㅎㅎㅎㅎㅎ 🙏🙏
안녕하세요 혹시 프론트 코드 제공받을 수 있을까요?
0
75
2
실행이 안되네요
0
75
2
프론트 영역 보는법
0
56
2
companion object
0
82
2
Custom 레프직토리 형식
0
66
2
Querydsl 도입
0
72
2
fetch join DISTINCT 중복제거
1
88
2
표준 예외와 커스텀 예외 사용 전략 질문
0
101
3
이 질문이 왜 없는지 이해가 안 되지만 문제 인식 및 해결 방법 남깁니다.
1
179
2
테스트를 위한 코드
1
109
2
프로젝트 실행 에러
0
155
2
PDF 문서에 오타가 있어서 알려드립니다.
1
102
1
enum질문
1
88
1
테스트 후 AfterEach 함수에서 나오는 쿼리
0
138
2
테스트 fixture
1
217
2
./gradlew test 실행시 인식할수 없다고 뜹니다.
0
144
1
test 코드 실행시 경고가 발생합니다.
0
147
1
13강 User Kotlin 변환중
2
173
3
'추가 - 코프링과 플러그인' 강의 7:46 allopen 관련 질문
2
176
1
-
0
146
2
4:28 build.gradle 수정 시 kotlin-reflect관련 implementation 추가 해야할까요?
0
315
3
junit import 불가
0
280
3
테스트 코드와 관련하여 질문이 있습니다.
1
219
1
hibernate가 select를 두번 하는 이유
0
242
1





