У меня есть приложение Spring boot 2.2, которое использует spring-boot-data-jpa на уровне персистентности. Я использую JpaRepositories для запроса базы данных. У меня есть сущность с полем, которое всегда является отформатированным строковым значением значения другого поля. Я хочу подключиться к системе событий жизненного цикла гибернации и установить отформатированное значение в обратном вызове перед вставкой.
Это мой метод обратного вызова:
@Override
public boolean onPreInsert(PreInsertEvent preInsertEvent) {
NonIdentifierAttribute[] properties = preInsertEvent.getPersister().getEntityMetamodel().getProperties();
Object[] state = preInsertEvent.getState();
for (int i = 0; i < properties.length; i++) {
if (properties[i].getName().equals("fileId")) {
state[i] = "Test";
break;
}
}
return false;
}
Я могу отладить обратный вызов и посмотреть это называется. Здесь я установил значение, однако значение никогда не сохраняется в базе данных. Я новичок в спящем режиме и озадачен тем, почему значение никогда не сохраняется?
Кроме того, возможно, этот подход просто неверен, если да, дайте мне знать ?? Пожалуйста и спасибо