![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| isabsent |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 30.5.2010 Репутация: нет Всего: нет |
Нужно выполнить метод в Entity, изменяющий поля Entity сразу после заполнения этих полей данными из таблицы - что-то похожее на @PostConstruct. Обнаружил похожую аннотацию @PostUpdate, но не нашёл в доках Hibernate её описания. Подскажите, кто сталкивался, когда она применяется и почему
ничего не делает после заполнения полей данными из таблицы? |
|||
|
||||
| Embedded |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 22.2.2011 Где: Россия Репутация: 1 Всего: 1 |
isabsent,
Вот callback'и с кратким описанием:
Добавлено @ 16:11 Похоже тебе нужен PostLoad Обратный вызов PostLoad происходит после того, как данные для сущности считаны из базы данных, и экземпляр сущности создан. п. с. PreUpdate и PostUpdate Обновления сущности могут произойти в любое время, как в пределах транзакции (в случае расширенного контекста персистентности) так и вне транзакции. Поскольку нет никакого явного метода у EntityManager, обратный вызов PreUpdate, гарантированно, будет вызван только в некоторый момент перед обновлением базы данных. Некоторые реализации могут отследить изменения динамически и могут вызвать обратный вызов на каждое изменение, в то время как другие могут ожидать до конца транзакции и только вызвать обратный вызов единажды. Это сообщение отредактировал(а) Embedded - 7.6.2011, 16:16 |
|||
|
||||
| isabsent |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 30.5.2010 Репутация: нет Всего: нет |
Да, @PostLoad - это, похоже, то что надо! Но он не работает у меня почему-то... Не могу понять причину :( Как поставить breakpoint на метод, если его вызываю не я, а контейнер когда создаёт бины!?
P.S. Вы упоминаете EntityManager - скорее всего это из JPA? Но у меня он не используется, Spring напрямую связан с Hibernate. Может поэтому @PostLoad не работает? Это сообщение отредактировал(а) isabsent - 7.6.2011, 16:40 |
|||
|
||||
| Embedded |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 22.2.2011 Где: Россия Репутация: 1 Всего: 1 |
isabsent,
ааа... ну тогда тебе сюда http://docs.jboss.org/hibernate/core/3.5/r...tml/events.html А то @PostLoad это только для EntityManager (JPA) варианта. п.с. отредактировал ссылку, в адресе была ошибка Это сообщение отредактировал(а) Embedded - 7.6.2011, 16:54 |
|||
|
||||
| isabsent |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 30.5.2010 Репутация: нет Всего: нет |
Понял, спасибо! Хотелось чего-то просто в виде аннотации на метод.
Почему из всех аннотаций
у меня отказывается работать только javax.persistence.PostLoad ? |
|||
|
||||
| Embedded |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 22.2.2011 Где: Россия Репутация: 1 Всего: 1 |
isabsent,
вот этого не знаю, знаю только что @PostLoad (EJB3) не работает с SessionFactory |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |