Я использую перехватчик Hibernate для обновления и мне нужен репозиторий для сохранения в базе данных.
У меня автоматическое хранилище, и оно не работает. Всегда ноль. Вот мой код:
@Component
public class AuditInterceptor extends EmptyInterceptor {
@Autowired
private LogsRepository repository;
public boolean onFlushDirty(Object entity, Serializable id, Object[] currentState, Object[] previousState,
String[] propertyNames, Type[] types) {
if(entity instanceof Personnel) {
for (int i = 0; i < propertyNames.length; i++) {
if(currentState[i] != previousState[i]) {
Log log = new Log();
log.setEntity("Personnel");
log.setIdEntity(id.toString());
log.setPropertyChanged(propertyNames[i] );
log.setOldValue(previousState[i] != null ? previousState[i].toString() : "");
log.setNewValue(currentState[i] != null ? currentState[i].toString() : "");
log.setTimestamp(new Date());
System.out.println(log.toString());
repository.save(log);
return true;
}
System.out.println("Property names :"+propertyNames[i]);
System.out.println("Old value :"+previousState[i]);
System.out.println("New value :"+currentState[i]);
}
}
return false;
}
}
Перехватчик работает нормально, но LogRepository всегда равен нулю.