조회 메서드에서 @Transactional(readOnly=true) 질문
2
投稿した質問数 14
안녕하세요 재민님!
강의를 들으면서 코드베이스를 보니, 조회 메서드에는 대부분 @Transactional(readOnly=true)을 걸지 않으시더라고요. (물론 findById() 같은 건 Spring Data JPA 내부에 알아서 걸려있긴 하지만요)
예를 들어서,
fun findByCategory(categoryId: Long, offsetLimit: OffsetLimit): Page<Product> {
val categories = productCategoryRepository.findByCategoryIdAndStatus(categoryId, EntityStatus.ACTIVE, offsetLimit.toPageable())
val products = productRepository.findAllById(categories.content.map { it.productId })
.map {
Product(
id = it.id,
name = it.name,
thumbnailUrl = it.thumbnailUrl,
description = it.description,
shortDescription = it.shortDescription,
price = Price(
costPrice = it.costPrice,
salesPrice = it.salesPrice,
discountedPrice = it.discountedPrice,
),
)
}
return Page(products, categories.hasNext())
}productCategory를 조회하는 시점의 스냅샷과 product를 조회하는 스냅샷이 위 케이스에선 일치하지 않아도 별 문제가 생기지 않겠지만, 때로는 정합성과 같은 이유로 같은 시점의 스냅샷을 유지해야 하는 경우도 있을 것 같다는 생각이 들었습니다!
물론 이는 @Transactional 뿐만 아니라 DB 격리수준까지 엮인 문제라, 단순히 @Transcational의 판단 기준으로만 보기는 어렵지만, 조회 시점에 @Transactional(readOnly=true) 를 사용하는 것에 대한 재민님만의 기준이 있는지 궁금합니다!
回答 0
해당 결제 부분을 포폴에서 테스트 api를 적용에 대한 궁금증
0
37
0
아무도 모르게 책 내시면 모르실 줄 알고!!
1
107
2
개념과 격벽에 대한 이해를 팀과 공유하고 합의하는 방법
1
117
2
페이징 처리에서 offset/limit에 대한 질문
1
104
1
usecase 사용 기준
1
121
2
궁금한점이 여러개 생겼습니다.
1
142
1
다양한 관점의 코드 경험을 위해 개선하지 않은 코드
1
114
1
histories() 응답에 PointHistory.id를 포함한 이유가 궁금합니다/
1
92
2
SettlementTargetRepository Jquery 질문
1
98
2
부가 기능을 이벤트 핸들러로 분리하는 기준이 있을까요?
1
117
2
엔티티의 pk 를 0으로 초기화하시는 이유가 있을까요??
1
125
2
제미니님 안녕하세요!
1
131
2
개념 간 격벽 분리와 목록 조회 시 발생하는 참조 구조
1
147
2
프로덕트와 프로덕트카테고리 사이의 삭제 정책
1
135
2
새로 개발한다면 구현 순서
1
198
1
의존 방향에 대한 고민
1
179
2
어드민(Back-office)에서 예약 변경 시, '할인 조건 재검증(쿠폰 회수)' vs '기존 혜택 유지' 중 어떤 정책이 일반적인가요?
1
146
2
OrderKeyGenerator 인스턴스화 generate() 질문
1
123
1
외부 API 통합 시 데이터 제어 범위 설계 질문
1
137
1
PG 결제 승인 로직
1
207
2
QnA에서 Join 필드 표현법
1
144
1
결제서비스 콜백 동시성문제 가능성
1
181
2
굿
1
146
1
도메인/엔티티 분리 상황에서 쓰기 작업 하는 방법
1
189
2

