작성
·
153
0
안녕하세요 영한님,
정말 좋은강의 잘 듣고있습니다. 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가 있나요?
답변 감사합니다 🙂 강의가 너무 좋습니다. 5년동안 개발자하면서 배운것보다 강의 몇개보는게 훨씬 개념이 탄탄해지는 느낌이라 이미알고있는 부분까지도 모두 영한님 강의로 다시듣중입니다. 환절기 감기조심하시고 항상 좋은강의 부탁드릴게요!