При использовании динамических прокси, как я могу получить доступ к аннотациям базового объекта? - PullRequest
4 голосов
/ 28 сентября 2008

Как при использовании динамических прокси получить доступ к аннотациям базового объекта?

В частности, я аннотирую настройки объекта ORM с помощью @Column ("client_id"), а затем заставляю динамический прокси-сервер отслеживать, когда вызываются аннотированные сеттеры, но ...

Похоже, что аннотированный прокси не содержит каких-либо нижележащих аннотаций настолько коротких, чтобы их можно было отразить при каждом вызове, как мне заставить прокси иметь аннотации класса, который он проксирует?

Спасибо, Allain

1 Ответ

4 голосов
/ 28 сентября 2008

AFAIK, это зависит от вашей библиотеки вставки байт-кода. Кроме того, помните, что обычно аннотации не наследуются (налагаются спецификацией Java). Если вы хотите получить доступ к исходному классу и используете CGLIB, вы можете использовать этот фрагмент:

 if (Enhancer.isEnhanced(getClass())) {
    currClass = UnEnhancer.unenhance(getClass());
 } else {
    // else, let's get the original class directly
    currClass = getClass();
 }
...