EntityManager

Java

Dirty Checking 원리 완벽 정리 (JPA 자동 UPDATE 쉽게 설명)

JPA 공부하다 보면 거의 반드시 듣게 되는 핵심 기능이 있다.👉 Dirty Checking그리고 처음 보면 대부분 이렇게 생각한다."UPDATE 쿼리 안 썼는데 왜 DB가 수정되지?"실제로 JPA에서는 이런 코드가 가능하다.member.setName("kim");근데:UPDATE SQL을 직접 호출하지 않았는데도 DB 값이 바뀐다.처음 보면 진짜 신기하다.근데 이게 바로:👉 Dirty Checking덕분이다.실무에서도 엄청 중요한 기능이다.왜냐면:✔ JPA 자동 UPDATE 핵심✔ 영속성 컨텍스트 핵심 기능✔ 트랜잭션 동작 이해 필수✔ 성능 최적화와 연결되기 때문이다.오늘은 Dirty Checking 원리를 초보자도 이해할 수 있게 쉽게 정리해보겠다.Dirty Checking 이란?👉 엔티티 변경..

Java

JPA cascade 옵션 완벽 정리 (CascadeType.ALL, orphanRemoval 쉽게 설명)

JPA 공부하다 보면 거의 반드시 만나게 되는 옵션이 있다.👉 cascade그리고 처음 보면 진짜 헷갈린다.왜냐면 코드가 보통 이렇게 생긴다.@OneToMany( cascade = CascadeType.ALL)처음 보는 사람 입장에서는:"이게 대체 뭘 자동으로 해준다는 거지?"싶어진다.근데 실무에서는:✔ 부모 저장 시 자식 자동 저장✔ 부모 삭제 시 자식 자동 삭제✔ persist 전파✔ remove 전파같은 엄청 중요한 동작과 연결된다.특히:CascadeType.ALL무심코 사용했다가 데이터가 예상치 않게 삭제되는 경우도 진짜 많다.오늘은 JPA cascade 옵션을 초보자도 이해할 수 있게 쉽게 정리해보겠다.cascade 란?👉 부모 엔티티 작업을 자식 엔티티로 전파하는 기능쉽게 말하면:부모..

Java

flush vs commit 차이 완벽 정리 (JPA 트랜잭션 쉽게 설명)

JPA 공부하다 보면 거의 반드시 헷갈리는 개념이 있다.👉 flush👉 commit처음에는 둘 다 비슷해 보인다.왜냐면 둘 다:DB에 반영되는 느낌이 있기 때문이다.그래서 초보자들은 자주 이렇게 생각한다."flush 하면 저장 완료 아닌가?"근데 실제로는:✔ flush ≠ commit✔ 역할 완전히 다름✔ 동작 시점 다름✔ rollback 가능 여부 다름이다.이 차이를 제대로 이해해야:✔ JPA 동작 원리✔ 영속성 컨텍스트✔ Dirty Checking✔ 트랜잭션 관리를 제대로 이해할 수 있다.오늘은 flush vs commit 차이를 초보자도 이해할 수 있게 쉽게 정리해보겠다.가장 먼저 결론flush👉 SQL을 DB로 전송commit👉 최종 저장 확정핵심 차이flush = 반영 준비commit =..

Java

영속성 컨텍스트란? JPA 핵심 개념 완벽 정리 (1차 캐시, Dirty Checking 쉽게 설명)

JPA 공부를 시작하면 거의 반드시 듣게 되는 핵심 개념이 있다.👉 영속성 컨텍스트(Persistence Context)근데 처음 들으면 솔직히 엄청 어렵다.왜냐면 설명들이 보통 이렇게 나온다.엔티티를 영구 저장하는 환경처음 보는 사람 입장에서는:"그래서 정확히 뭐 하는 건데?"싶어진다.근데 영속성 컨텍스트를 이해하면:✔ JPA 동작 원리✔ Dirty Checking✔ 1차 캐시✔ 쓰기 지연 SQL 저장소✔ flush✔ transactional 동작이런 핵심 개념들이 전부 연결된다.실무에서도 JPA 성능 최적화와 직접 연결되는 엄청 중요한 개념이다.오늘은 영속성 컨텍스트를 초보자도 이해할 수 있게 쉽게 정리해보겠다.영속성 컨텍스트란?👉 엔티티(Entity)를 관리하는 JPA 내부 공간쉽게 말하면:"엔..

Coding_Slowly
'EntityManager' 태그의 글 목록