[Spring] LazyInitializationException: could not initialize proxy - no Session
문제 상황
Favorite
-Mall
-Product
로 연관관계를 맺고 있고 Favorite
정보를 DB에서 가져올 때 Product
정보까지 가져
오지 못하면서 다음 에러가 발생했다.
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
아래는 querydsl을 적용한 코드로 leftJoin()
으로 Mall
, Product
까지 엮어서 정보를 가져오려고 했다.
@Override
public List<Favorite> userFavoriteMall(Long userId) {
return queryFactory
.selectFrom(favorite)
.leftJoin(favorite.user, user)
.leftJoin(favorite.mall, mall)
.leftJoin(mall.products, product)
.where(
userIdEq(userId)
)
.fetch();
}
해결 방법
product
를 leftJoin()
을 걸어서 정보를 가져오고자 했으나 fetch join이 되질 않아서 발생한 문제였다.
뒤에 fetchJoin()
을 걸어서 해결했다.
@Override
public List<Favorite> userFavoriteMall(Long userId) {
return queryFactory
.selectFrom(favorite)
.join(favorite.user, user)
.join(favorite.mall, mall)
.join(mall.products, product)
.where(
userIdEq(userId)
)
.fetch();
}
댓글남기기