protected boolean invokeInterceptor(
SessionImplementor session,
Object entity,
EntityEntry entry,
final Object[] values,
EntityTypeDescriptor entityDescriptor) {
boolean isDirty = false;
if ( entry.getStatus() != Status.DELETED ) {
if ( callbackRegistry.preUpdate( entity ) ) {
isDirty = copyState( entity, entityDescriptor.getPropertyJavaTypeDescriptors(), values, session.getFactory() );
}
}
if ( isDirty ) {
return true;
}
return session.getInterceptor().onFlushDirty(
entity,
entry.getId(),
values,
entry.getLoadedState(),
entityDescriptor.getPropertyNames(),
entityDescriptor.getPropertyJavaTypeDescriptors()
);
}