record class @Transactional 사용에 대해서
178
작성한 질문수 24
안녕하세요 토비님
회원 애플리케이션 서비스 테스트 (2) -25:19
에 대해 질문 드립니다.
record 에 @Transactional을 사용하면
실행에는 문제가 없으나 인텔리제이에서
Classes annotated with '@Transactional' could be implicitly subclassed and must not be final
이와같은 경고 메세지를 주는데
무시하고 지나가도 되는건지요?
답변 2
2
IntelliJ가 주는 이 경고는 무시하시면 됩니다. 이건 잘못된 경고입니다.
@Transactional이 서비스 코드에 붙었을 때 적용할 원리를 테스트에 사용한 @Trasactional에 기계적으로 적용해서 나온 것입니다. JetBrains에 고쳐달라고 해야겠어요.
0
안녕하세요, 인프런 AI 인턴입니다. JuNu님.
토비의 ‘클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1’ 강의 관련 질문을 주셨네요. record 클래스에 @Transactional 어노테이션을 사용했을 때 발생하는 경고 메시지에 대한 질문입니다.
@Transactional 어노테이션은 스프링이 트랜잭션 관리를 위해 프록시 기반으로 동작하게 됩니다. 따라서 @Transactional이 붙은 클래스는 프록시를 생성하기 위해 기본적으로 상속 가능한 형태여야 합니다. 그러나 record 클래스는 자바 14부터 도입된 레코드 기능으로, 기본적으로 final로 선언되어 있어 상속이 불가능합니다. 그래서 인텔리제이에서 해당 경고 메시지를 출력하는 것입니다.
일반적으로 이 경고는 무시할 수 있는 부류의 것이지만, 이는 record의 특성과 트랜잭션 관리 방식의 차이에서 기인한 것으로, 실제로 트랜잭션이 제대로 관리되지 못하는 상황을 피하기 위해서는 record 대신 다른 클래스를 사용하거나 트랜잭션 관리를 별도의 서비스 계층에서 담당하도록 리팩터링하는 것이 바람직합니다.
관련 주제를 다룬 유사한 질문과 답변을 참고하시면 더 깊이 있게 이해하실 수 있습니다:
이 내용이 JuNu님의 궁금증 해결에 도움이 되길 바랍니다. 추가적으로 더 궁금한 점이 있으면 언제든지 질문해 주세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
도메인 모델에서 관계와 규칙을 구분하는 방법
0
37
2
헥사고날 아키텍처에서의 배치, 시큐리티, 비동기 이벤트 처리는 어떻게 하나요?
0
115
2
어댑터에서 도메인에 직접 의존하는 경우에 대해
0
116
2
Member 도메인이 PasswordEncoder를 받는 구조 질문 있습니다.
0
103
2
MemberService와 EmailSender 책임 분리에 대한 질문
0
102
2
NonNullApi를 NullMarked로 대체하라고 합니다.
0
123
2
39. 문서와 코드 다듬기 updateInfo 테스트 질문 있습니다.
0
71
2
Repository Adapter 설계에 대해 피드백을 부탁드립니다
0
105
2
헥사고날 part2 강의 출시 예정일 문의 드립니다.
0
244
2
PT 문의사항
0
97
1
초기 어플리케이션 구동 시 compose.yml 파싱 오류
0
147
2
애플리케이션의 JPA 리턴과 도메인 모델
0
125
2
애그리거트 루트의 하위 도메인들의 depth가 깊어질 때 문의
0
133
2
페이징 처리를 해야한다면 어떻게 해야할까요?
0
187
2
애그리거트의 repository
0
116
2
Domain Expert가 정확히 어떤 역할을 하는 사람인가요?
0
228
1
회원 애플리케이션 서비스 테스트 (1)
0
102
2
정적 팩토리 메서드 관련 질문드립니다!
0
103
2
spotbug + @NonNullApi 로만 Null 방어가 될까요?
0
127
2
required 포트에 관해서
0
90
2
혹시 다음 편은 언제쯤 오픈할까요?
0
163
2
서비스 단위 테스트 코드 작성
0
94
2
domain 모듈에 entity를 정의한다고 했을때
0
95
2
여러 엔티티의 조합으로 리포트를 제공해야할 때
0
78
2





