Если вам нужно что-то вроде JIRA, вы должны создать его самостоятельно.
Я бы предложил использовать перехватчики Hibernate:
http://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#events
Как выВ следующем примере видно, что вы получаете текущее и предыдущее состояние, а затем можете создать дельту и сохранить ее в собственной таблице изменений:
public static class LoggingInterceptor extends EmptyInterceptor {
@Override
public boolean onFlushDirty(
Object entity,
Serializable id,
Object[] currentState,
Object[] previousState,
String[] propertyNames,
Type[] types) {
LOGGER.debugv( "Entity {0}#{1} changed from {2} to {3}",
entity.getClass().getSimpleName(),
id,
Arrays.toString( previousState ),
Arrays.toString( currentState )
);
return super.onFlushDirty( entity, id, currentState,
previousState, propertyNames, types
);
}
}