2012-04-18 3 views
3

У меня проблема, что мой метод @PostLoad на @Embeddable не вызывается.@PostLoad на @Embeddable в JPA 2?

Но я не знаю, если он должен работать, и есть какая-то ошибка в том, что у меня некорректная конфигурация, или я не должен работать, потому что @PostLoad только для @Entity s?

Я не нашел конкретного заявления о @PostLoad в @Embeddable в JSR.

3.5.1 Методы жизненного цикла обратного вызова

Entity методы обратного вызова жизненного цикла может быть определена на сущности слушателя класса и/или непосредственно на класс объектов или помеченный суперкласса.

Я не знаю, включено ли это заявление @Embeddable или нет.

Мой постоянный провайдер - Eclipselink.

ответ

3

Обратные вызовы и прослушиватели объектов в настоящее время не обрабатываются для Встраиваемых. Вероятно, это связано со спецификацией, поскольку они называются обратными вызовами «Entity», также orm.xml не позволяет им встраиваться.

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

Вы должны быть в состоянии определить дескрипторEventListener для встраивания с помощью DescriptorCustomizer, обратный вызов PostLoad сопоставляется postBuild и postClone.

+0

Есть ли шанс, что это также доступно в той или иной форме для Hibernate? –

Смежные вопросы