• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

jpa merge 관련 문의 드립니다.

21.04.14 14:16 작성 조회수 328

1

안녕하세요. 항상 좋은 강의 감사드립니다.

새로운 엔터티를 구별하는 방법에서 궁금한 부분이 있어 질문 드립니다.

일반적으로 수정을 위해 findById를 통해 Entity 객체를 영속화 시킨 후 필요한 칼럼을 변경처리 하고 있습니다.

이러면 변경감지를 통해 트랜잭션 종료 구간에서 자동 update 쿼리가 발생이 되는데요...

만약 이 상태에서 repository.save(entity)를 수행하게 되면 혹시 문제가 발생할 만한 포인트가 있는지 궁금합니다.

내부 로직을 보면 아마도 save()에서 SPring Data JPA가 merge를 수행할것 같은데요...

보통 준영속성 상태 객체를 merge하는건 좋은 방법이 아닌것 같지만 이 처럼 findById를 통해 영속화 되어 있는 객체를 merge 하게 되면 혹시나 별도 주의사항이 있지는 않는지 문의 드립니다.

감사드립니다.

답변 2

·

답변을 작성해보세요.

1

류재준님의 프로필

류재준

2021.07.19

삭제된 글입니다

네^^;;

1

안녕하세요. 근일님^^

영속 상태의 엔티티를 merge하게 되면 무시합니다.

trace 레벨로 로그를 찍어보시면

Ignoring persistent instance 라는 메시지를 확인할 수 있습니다.

merge cascade가 설정되어 있는 경우에는 merge cascade가 발생할 수 있습니다.

그런데 어떤 이유 때문에 이렇게 사용하고 싶으신건지요?

감사합니다.

유근일님의 프로필

유근일

질문자

2021.04.16

답변 감사합니다. 제가 사용하는 코드는 아니고요... 코드 인스펙션을 하면 이런 형식의 코드가 많이 나와서 혹시 문제가 있지는 않을까 문의드렸던 부분입니다. 그럼 딱히 문제는 없는걸로 이해해도 될까요??

이 부분은 잘못 사용된 것이기 때문에 제거하는 것이 맞습니다.

그래도 혹시 모르니 이 코드를 작성하신 담당자분께 어떤 의도로 이렇게 작성했는지 문의하는게 좋을 듯 합니다.

감사합니다.