(一)支持interceptor、event listener、jpa callback
1、interceptor,可以参考hibernate-core-5.0.12.Final-sources.jar!/org/hibernate/EmptyInterceptor.java
有onSaveonDeleteonLoadfindDirtypreFlushpostFlush等
2、event listener
查看AbstractReassociateEventListener的子类
3、jpa callback
支持@PrePersist,@PreRemove,@PostPersist,@PostRemove,@PreUpdate,@PostUpdate,@PostLoad
详情见hibernate-user-guide
(二)对于事务的回调
可以使用registerSynchronization方法,注册TransactionSynchronizationAdapter的子类,重新想要的方法,比如
public void beforeCommit(boolean readOnly) {
}
public void beforeCompletion() {
}
public void afterCommit() {
}
public void afterCompletion(int status) {
}
其中status为
/** Completion status in case of proper commit */
int STATUS_COMMITTED = 0;
/** Completion status in case of proper rollback */
int STATUS_ROLLED_BACK = 1;
/** Completion status in case of heuristic mixed completion or system errors */
int STATUS_UNKNOWN = 2;
(三)针对是否操作成功
不抛异常,一般就是成功