인프런 커뮤니티 질문&답변

Kevin님의 프로필 이미지
Kevin

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

데이터 변경시 set과 persist

작성

·

168

1


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/)

[질문 내용]
안녕하세요
JPA 기본편 8강 영속성컨텍스트2 강의듣다가 의문이 생겨서 질문남깁니다.
 
요즘제가 git도 배우면서 보니 약간 개념이 겹치는 것 같더라구요.
 
수업중에 데이터 변경시에 persist를 쓰면 update쿼리가 날라가니 쓰면안되는거구 set으로 변경을 해주면 된다라고 하셧을때
곧이 곧대로 이해가 갔는데 그 부분을 되게 강조해서 말씀하시더라구요.
 
(git에서도 update는 새로운 정보를 올리는거고 modified가 수정이라서 그런갑다 했었는데)
 
혹시 이 부분을 보통 왜 헷갈려하는지 여쭤봐도 될까요..?
제가 모르는게 많다보니 헷갈려할 지식도 없는 듯해서,
 
persist를 사용해서 데이터의 등록이아닌 수정을 하는 경우가 있어서 그런건지. 왜 어떤 개념때문에 헷갈려 하는지.. 궁금합니다.!
 
감사합니다!
 
 

답변 1

2

안녕하세요,  님! 공식 서포터즈 codesweaver 입니다.

영속성 컨텍스트에 등록한 객체는 엔티티매니저가 모든 상태를 관리하도록 하는것이 좋습니다.

가령 set 메서드를 통해 객체의 프로퍼티가 변경되었다면, 엔티티매니저는 이 변화를 감지(더티체크)하여 추후에 데이터베이스와 동기화 과정을 자동으로 거칩니다. 그래서 사용자가 임의로 persist 명령을 내리지 않아도 됩니다.

.

JPA를 사용하지 않던 과거 프로젝트에서는 객체의 상태가 바뀌면 수동으로 Update 쿼리 하는 것이 당연했습니다. 그래서 JPA를 사용하며 이 부분을 많이 혼동하기에 강조하여 설명하셨습니다.

감사합니다.

Kevin님의 프로필 이미지
Kevin
질문자

우와.. JPA가있어 정말 편리한거군요. 감사합니다!!

Kevin님의 프로필 이미지
Kevin

작성한 질문수

질문하기