최대 1 분 소요

문제 상황

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();
}


해결 방법

productleftJoin()을 걸어서 정보를 가져오고자 했으나 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();
}

카테고리:

업데이트:

댓글남기기