Lorsque j'utilise des proxies dynamiques, comment puis-je accéder aux annotations de l'objet sous-jacent?

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

  •  02-07-2019
  •  | 
  •  

Question

Lorsque j'utilise des proxies dynamiques, comment accéder aux annotations de l'objet sous-jacent?

Plus précisément, j'annote les paramètres d'un objet ORM avec @Column ("id_client"), puis je fais en sorte qu'un proxy dynamique garde une trace du moment où les paramètres annotés sont appelés, mais ...

Il ne semble pas que le proxy annoté conserve l’une des annotations sous-jacentes si peu de réflexions sur chaque invocation, comment puis-je lui donner les annotations de la classe qu’il est en train de remplacer par proxy?

Merci Allain

Était-ce utile?

La solution

Autant que je sache, cela dépend de votre lib d'injection de bytecode. N'oubliez pas non plus que les annotations ne sont généralement pas héritées (imposées par la spécification Java). Si vous souhaitez accéder à la classe d'origine et utilisez CGLIB, vous pouvez utiliser cet extrait:

 if (Enhancer.isEnhanced(getClass())) {
    currClass = UnEnhancer.unenhance(getClass());
 } else {
    // else, let's get the original class directly
    currClass = getClass();
 }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top