Изменить состояние объекта onPreInsert событие - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть приложение 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;
}

Я могу отладить обратный вызов и посмотреть это называется. Здесь я установил значение, однако значение никогда не сохраняется в базе данных. Я новичок в спящем режиме и озадачен тем, почему значение никогда не сохраняется?

Кроме того, возможно, этот подход просто неверен, если да, дайте мне знать ?? Пожалуйста и спасибо

...