본문 바로가기
반응형

Hibernate2

히스토리 관리 - 데이터 변경 감지 - 심화 🎯 결론부터✅ Listener는 엔티티 1개당 1번씩 호출됩니다.❌ 여러 엔티티를 한 번에 묶어서 호출하지 않습니다.즉,엔티티 3개가 변경되면onPostUpdate()는 3번 호출됩니다→ 하나로 묶어서 보고 싶다.🔥 언제 호출되냐?핵심은 flush 시점입니다.Hibernate는:트랜잭션 중 엔티티 변경flush 시점에 Dirty Checking 수행변경된 엔티티 목록 수집각각에 대해 SQL 실행각각에 대해 PostUpdateEvent 발생📌 예시memo1.setMemo("A");memo2.setMemo("B");memo3.setMemo("C");이 시점에서는 아무 일도 안 일어납니다. flush 발생하면:Dirty Checking 시작 → memo1 변경 감지 → memo2 변경 감지 → memo3.. 2026. 3. 3.
히스토리 관리 - 데이터 변경 감지 📌 데이터 변경 감지 방식 비교 정리🎯 목적API를 통한 CRUD 변경 이력 확인운영 관점에서 데이터 변경 추적bulk update 포함 여부 고려MSA 구조 + MySQL 환경1️⃣ Hibernate Event Listener✅ 개념Hibernate 내부 이벤트(PostInsert, PostUpdate, PostDelete 등)를 가로채서엔티티 변경 시점에 원하는 로직을 실행하는 방식.“엔티티 변경 시점에 개입하는 구조”✅ 특징Hibernate 레벨에서 동작Dirty Checking 기반변경 전/후 값 접근 가능JSON 등 자유로운 포맷 저장 가능특정 엔티티만 선택 적용 가능Kafka 발행 등 확장 가능테이블 자동 생성 없음 (직접 설계)❗ 한계JPQL bulk update 감지 불가native q.. 2026. 2. 25.
반응형