Merge 관련해서 질문드립니다.
223
작성한 질문수 3
안녕하세요 영한님,
정말 좋은강의 잘 듣고있습니다. Merge관련해서 질문이 하나있는데요..!
아래 두 method 모두 시작할때 persistence context가 비어있고 찾는 entity가 db에 있다고 가정할때 비슷한 (혹은 같은) flow로 진행될까요? 여기서 method parameter, Entity e,는 업데이트될 (id가 set되어있고 field가 업데이트 되어있는)객체입니다.
@Transactional
public void updateEntity(Entity e){
Entity foundEntity = em.find(Entity.class, e.getid());
foundEntity.setFieldOne("New Data");
}@Transactional
public void updateEntity(Entity e){
em.merge(e);
}Merge를 꼭 써야하는건 아니지만, 그냥 동작 메커니즘이 궁금해서 질문드립니다. Merge를 쓰는게 Update전에 항상 Select query로 db에서 객체를 조회하기때문에 쓰기를 지양하라고 하시는건가요, 아니면 merge를 쓸때 또 다른 downside가 있나요?
답변 1
0
안녕하세요. SeokHoon Kim님
올려주신 코드는 내부에서 같은 방식으로 작동하기 때문에 사용에 차이가 없습니다.
그보다는 merge를 제공하는 이유에 맞게 사용하면 괜찮습니다.
merge는 준영속 상태가 된 엔티티를 다시 영속 상태로 만들 때 사용합니다.
해당 목적이라면 충분히 사용하셔도 괜찮습니다.
두번째 예시는 이 예시에 부합하는 것으로 보입니다.
감사합니다.
2
답변 감사합니다 🙂 강의가 너무 좋습니다. 5년동안 개발자하면서 배운것보다 강의 몇개보는게 훨씬 개념이 탄탄해지는 느낌이라 이미알고있는 부분까지도 모두 영한님 강의로 다시듣중입니다. 환절기 감기조심하시고 항상 좋은강의 부탁드릴게요!
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
0
69
1
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
0
107
3
MemberRepository 구현체
0
57
1
pdf 표현 질문드립니다.
0
62
1
로그가 남지 않는 문제.
0
81
1
테스트 라이브러리가 강의는 junit4가 맞나요??
0
70
2
pdf 파일과 차이점이 있는 것같은데 문제 없나요?
0
72
2
@PrePersist, @PreUpdate 호출 시점 질문드립니다.
0
91
2
Sort 인터페이스는 잘 사용 안하나요?
0
52
1
스캔대상 질문드립니다.
0
46
1
하이버네이트6에서의 최적화에 이은 질문
0
85
1
save() vs saveAndFlush DB 통신 횟수
0
53
1
순수 JPA 리포지토리 코드 수정부분
0
86
2
bulk연산 후 flush하는 이유를 모르겠어요
0
152
3
bulk insert 질문입니다.
0
178
2
교만했던 것 같아요.
0
147
1
RESTful 강의는 안하시는 건지 궁금합니다.
0
147
2
동적 테이블에 대한 질문
0
86
1
영속성 전이와 연관관계
0
130
2
강의 10:25 질문
0
74
1
단건 update 질문
0
95
2
엔티티 와 도메인의 경계
0
127
1
UsernameOnlyDto 타입 type mismatch 오류
0
119
1
Projection 개념과 데이터 전달과정에 대해 질문 있습니다.
0
136
1





