inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 데이터 JPA

Specifications (명세)

Merge 관련해서 질문드립니다.

223

SeokHoon Kim

작성한 질문수 3

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가 있나요?

spring spring-boot jpa java

답변 1

0

김영한

안녕하세요. SeokHoon Kim님

올려주신 코드는 내부에서 같은 방식으로 작동하기 때문에 사용에 차이가 없습니다.

그보다는 merge를 제공하는 이유에 맞게 사용하면 괜찮습니다.

merge는 준영속 상태가 된 엔티티를 다시 영속 상태로 만들 때 사용합니다.

해당 목적이라면 충분히 사용하셔도 괜찮습니다.

두번째 예시는 이 예시에 부합하는 것으로 보입니다.

감사합니다.

2

SeokHoon Kim

답변 감사합니다 🙂 강의가 너무 좋습니다. 5년동안 개발자하면서 배운것보다 강의 몇개보는게 훨씬 개념이 탄탄해지는 느낌이라 이미알고있는 부분까지도 모두 영한님 강의로 다시듣중입니다. 환절기 감기조심하시고 항상 좋은강의 부탁드릴게요!

1

김영한

SeokHoon Kim님도 환절기 감기 조심하시고 크게 성장하는 2024년 되세요 :)

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