JPA delete()가 작동하지 않을 때

Exception

목록 보기
13/16

https://velog.io/@sonaky47/JPA-delete%EA%B0%80-%EC%95%88%EB%90%9C%EB%8B%A4


        if (body.getIsModelIdDirty()) {
            Model model = modelRepository.findOneById(body.getModelId())
                .orElseThrow(() -> new ApiException(ExceptionEnum.MODEL_NOT_FOUND));

            if (article.getArticleModels().size() > 0) {
                articleModelRepository.deleteAll(article.getArticleModels());
            }
            ArticleModel newArticleModel = articleModelMapper.toEntity(model, article);
            articleModelRepository.save(newArticleModel);
        }



    @OneToMany(mappedBy = "article", fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
    private List<ArticleModel> articleModels = new ArrayList<>();

cascade= CascadType.ALL, orphanRemoval=true 가 걸려있지 않은 상태에서 delete메소드를 호출해도 작동하지 않았다.
위에 있는 블로그를 참고하여 articleModel을 초기화해주는 코드를 추가하였고,
body에서 새로 태그하고 싶은 차량PK를 추가하니 잘 작동되었따.


        if (body.getIsModelIdDirty()) {
            Model model = modelRepository.findOneById(body.getModelId())
                .orElseThrow(() -> new ApiException(ExceptionEnum.MODEL_NOT_FOUND));

            if (article.getArticleModels().size() > 0) {
                articleModelRepository.deleteAll(article.getArticleModels());
                article.getArticleModels().clear();
            }
            ArticleModel newArticleModel = articleModelMapper.toEntity(model, article);
            articleModelRepository.save(newArticleModel);
        }

아마 영속성과 관련된 문제 아니었나 싶다.

profile
야호 약간 헌 개발자....

0개의 댓글