Transactional 에러

호호빵·2023년 3월 1일
0

sunflowerProject

목록 보기
2/10

User의 post 목록을 불러오는 도중 에러 발생

@Transactional
    public PostResponse savePost(List<String> urls, PostRequest request, User user) {
        Post post = new Post(request, user);

        saveImages(urls, post);
        user.addPost(post);
        postRepository.save(post);

        return new PostResponse(post, user);
    }

위 처럼 실행하니 아래같은 에러가 발생했다.

failed to lazily initialize a collection of role:
___could not initialize proxy - no Session
@Transactional
    public PostResponse savePost(List<String> urls, PostRequest request, User user) {
        Post post = new Post(request, user);
        User userById = userRepository.findById(user.getId()).orElseThrow(
                () -> new NotFoundException(NOT_FOUND_USER)
        );

        saveImages(urls, post);
        userById.addPost(post);
        postRepository.save(post);

        return new PostResponse(post, userById);
    }

이렇게 닫혀있던 transactional을 열어 user를 만들고 넣어주니 proxy객체에 실제 post들을 넣을 수 있었다.

https://cantcoding.tistory.com/78

https://yonglimlee.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB%B3%B4%EB%8B%88-%EC%98%81%EC%86%8D%EC%84%9D-%EB%AC%B8%EC%A0%9C-failed-to-lazily-initialize-a-collection-of-role-could-not-initialize-proxy

profile
하루에 한 개념씩

0개의 댓글