입력/수정/삭제에 대해 히스토리을 남기고 싶다. - 속성, 이전값, 변경값 https://docs.jboss.org/hibernate/orm/4.2/javadocs/org/hibernate/Interceptor.html 간단히 EmptyInterceptor를 오버라이드해서 쓰면 된다. [설정, hibernate 4.2는 이렇고 3.x는 설정이 다르다. 인터셉터 구현 패턴의 변경] <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="entityInterceptor" ref="historyInterceptor"/> 1. 입력 onSave(...) 2. 수정 onFlushDirty(...) 3. 삭제 onDelete(...) 4. 컬렉션 입력/수정/삭제 onCollectionRecreate(...), onCollectionUpdate(...), onCollectionRemove(...) 5. 기타 등등 많이 있음. 이상한점 1 객체가 컬렉션일때(OneToMany) 그 객체들을 삭제하려면? 1. Set.remove(o)를 하면 삭제가 안된다. 왜 안되는지 모르겠다. 2. Set.removeAll(..) 을 해야 삭제가 된다. 그런데 Set 전체를 삭제해야 한다. 일부만 삭제하면 삭제가 안된다. 이건 뭥미?? 3. 위와 같은 경우에 인터셉터에 걸리지 않는다. 삭제가 안되었으니까 .. 이상한점 2 afterTransactionBegin(), afterTransactionCompletion(), before