티스토리 뷰
반응형
JUnit Test 에서 Lazy Init, 즉 FetchType.LAZY 인 경우에 발생하는 에러가 있습니다.
junit test could not initialize proxy - no Session
@Test
void lazyLoadingEntitiesTest() {
for(Domain domain : domains) {
> final List<SubDomain> subDomains = domain.getSubDomains();
for(SubDomain subDomain : subDomains) {
System.out.println(subDomain);
}
}
}
이런 경우 해결하는 방법으로는 @Transactional 을 메소드 상단에 붙여주면 해결됩니다.
@Test
@Transactional
void lazyLoadingEntitiesTest() {
for(Domain domain : domains) {
final List<SubDomain> subDomains = domain.getSubDomains();
for(SubDomain subDomain : subDomains) {
System.out.println(subDomain);
}
}
}
원인으로는 메인 Entity 클래스 내에 CascadeType.ALL 로 선언을 하여도 Unit Test에서 영속성이 끊어지는 사유가 발생하기 때문에 별도로 @Transactional 을 걸어주는 것이라고 합니다!
반응형
'Server' 카테고리의 다른 글
[Java] Ranking 알고리즘 (1) | 2022.04.18 |
---|---|
[1822] MYSQL 에러 추적 Failed to add the foreign key constraint (1) | 2022.04.16 |
Docker의 기본적인 개념 (0) | 2022.04.16 |
[Java] 컴파일 후 실행하면 나는 "jps.track.ap.dependencies" 에러 해결 (2) | 2022.04.12 |
RabbitMQ 의 동작방식과 적용법 (1) | 2022.04.09 |
Jenkins 글로벌 변수 설정하기 (1) | 2022.03.14 |
댓글
공지사항