jpa merge 관련 문의 드립니다.
510
작성한 질문수 6
안녕하세요. 항상 좋은 강의 감사드립니다.
새로운 엔터티를 구별하는 방법에서 궁금한 부분이 있어 질문 드립니다.
일반적으로 수정을 위해 findById를 통해 Entity 객체를 영속화 시킨 후 필요한 칼럼을 변경처리 하고 있습니다.
이러면 변경감지를 통해 트랜잭션 종료 구간에서 자동 update 쿼리가 발생이 되는데요...
만약 이 상태에서 repository.save(entity)를 수행하게 되면 혹시 문제가 발생할 만한 포인트가 있는지 궁금합니다.
내부 로직을 보면 아마도 save()에서 SPring Data JPA가 merge를 수행할것 같은데요...
보통 준영속성 상태 객체를 merge하는건 좋은 방법이 아닌것 같지만 이 처럼 findById를 통해 영속화 되어 있는 객체를 merge 하게 되면 혹시나 별도 주의사항이 있지는 않는지 문의 드립니다.
감사드립니다.
답변 2
1
안녕하세요. 근일님^^
영속 상태의 엔티티를 merge하게 되면 무시합니다.
trace 레벨로 로그를 찍어보시면
Ignoring persistent instance 라는 메시지를 확인할 수 있습니다.
merge cascade가 설정되어 있는 경우에는 merge cascade가 발생할 수 있습니다.
그런데 어떤 이유 때문에 이렇게 사용하고 싶으신건지요?
감사합니다.
0
답변 감사합니다. 제가 사용하는 코드는 아니고요... 코드 인스펙션을 하면 이런 형식의 코드가 많이 나와서 혹시 문제가 있지는 않을까 문의드렸던 부분입니다. 그럼 딱히 문제는 없는걸로 이해해도 될까요??
0
이 부분은 잘못 사용된 것이기 때문에 제거하는 것이 맞습니다.
그래도 혹시 모르니 이 코드를 작성하신 담당자분께 어떤 의도로 이렇게 작성했는지 문의하는게 좋을 듯 합니다.
감사합니다.
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
0
64
1
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
0
99
3
MemberRepository 구현체
0
55
1
pdf 표현 질문드립니다.
0
59
1
로그가 남지 않는 문제.
0
78
1
테스트 라이브러리가 강의는 junit4가 맞나요??
0
67
2
pdf 파일과 차이점이 있는 것같은데 문제 없나요?
0
68
2
@PrePersist, @PreUpdate 호출 시점 질문드립니다.
0
87
2
Sort 인터페이스는 잘 사용 안하나요?
0
50
1
스캔대상 질문드립니다.
0
45
1
하이버네이트6에서의 최적화에 이은 질문
0
81
1
save() vs saveAndFlush DB 통신 횟수
0
50
1
순수 JPA 리포지토리 코드 수정부분
0
85
2
bulk연산 후 flush하는 이유를 모르겠어요
0
147
3
bulk insert 질문입니다.
0
174
2
교만했던 것 같아요.
0
142
1
RESTful 강의는 안하시는 건지 궁금합니다.
0
143
2
동적 테이블에 대한 질문
0
84
1
영속성 전이와 연관관계
0
128
2
강의 10:25 질문
0
71
1
단건 update 질문
0
94
2
엔티티 와 도메인의 경계
0
124
1
UsernameOnlyDto 타입 type mismatch 오류
0
114
1
Projection 개념과 데이터 전달과정에 대해 질문 있습니다.
0
131
1





