Al usar proxies dinámicos, ¿cómo accedo a las anotaciones del objeto subyacente?

StackOverflow https://stackoverflow.com/questions/144936

  •  02-07-2019
  •  | 
  •  

Pregunta

Al usar proxies dinámicos, ¿cómo accedo a las anotaciones del objeto subyacente?

Específicamente, estoy anotando la configuración de un objeto ORM con @Column (" client_id ") y luego hago un Proxy dinámico para hacer un seguimiento de cuándo se llama a los configuradores anotados, pero ...

No parece que el proxy anotado mantenga ninguna de las anotaciones subyacentes tan cortas como para realizar una reflexión en cada invocación, ¿cómo puedo hacer que el proxy tenga las anotaciones de la clase en la que se está procesando?

Gracias, Allain

¿Fue útil?

Solución

AFAIK, depende de su código de inyección bytecode lib. Además, recuerde que normalmente las anotaciones no se heredan (impuestas por la especificación de Java). Si desea acceder a la clase original y está utilizando CGLIB, puede usar este fragmento de código:

 if (Enhancer.isEnhanced(getClass())) {
    currClass = UnEnhancer.unenhance(getClass());
 } else {
    // else, let's get the original class directly
    currClass = getClass();
 }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top