@PreUpdate и @Prepersist в спящем режиме / JPA (с использованием сеанса) - PullRequest
34 голосов
/ 09 ноября 2010

Я нажал на блокировщик, добавив исправление в существующий проект. Основная проблема в том, что я хотел бы использовать @Prepersist и @PreUpdate в POJO, чтобы позаботиться о поле LastModified (вставить и обновлять), используя hibernate-реализацию JPA с сеансом.

Причина? : Это изменение необходимо, потому что есть необходимость использовать liquibase 1.9.5, и я знаю (поскольку я сталкивался с этим раньше), что метка времени, переведенная liquibase, передается в datetime со значением по умолчанию current_timestamp, и это слишком плохо для базы данных mysql.

Так что мне нужен был способ, чтобы этот набор был в коде, а не в базе данных, чтобы я мог смело менять поле метки времени на datetime. Тогда ликвидаба счастлива, я счастлива.

Теперь кажется, что эти переводчики не были выполнены, и при небольшом поиске я обнаружил, что это целесообразно, используя entityManager. В настоящее время это не подлежит сомнению. Так что я хотел бы знать, если ПРОСТО обойти мою проблему, имея в виду @Prepersist или @PreUpdate или даже другой обходной путь для установки поля lastModified, все еще используя сеанс

1 Ответ

48 голосов
/ 09 ноября 2010

Теперь кажется, что эти интерпретаторы не были выполнены, при небольшом поиске я обнаружил, что он подходит с помощью entityManager.

Да, обратные вызовы JPA не будут работать, если вы 'я использую Session API.

Поэтому я хотел бы знать, существует ли ПРОСТОЙ способ обойти мою проблему, то есть иметь @PrePersist или @PreUpdate или даже другой обходной путь для установки поля lastModifiedвсе еще использую сеанс

Насколько мне известно, простого пути не существует (если вы используете Spring, МОЖЕТ взглянуть на этот пост , хотя).

Мое предложение для решения на основе Hibernate было бы использовать events (и один или несколько интерфейсов).Проверьте Спящий режим и дату последнего изменения для примера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...