Wenn die dynamische Verwendung von Proxies, wie gelange ich zu den Anmerkungen des zugrunde liegenden Objekts?
-
02-07-2019 - |
Frage
Wenn die dynamische Proxies, wie gelange ich zu den Anmerkungen des zugrunde liegenden Objekts?
Im einzelnen Einstellungen eines ORM-Objekt Ich bin mit Anmerkungen versehen mit @Column ( „client_id“) und dann eine dynamische Proxy halten machen verfolgen, wenn die kommentierten Setter genannt werden, aber ...
Es scheint nicht, dass die kommentierte Proxy kurz eine der zugrunde liegenden Anmerkungen hält so die bei jedem Aufruf Reflexion durchführt, wie ich den Proxy die Anmerkungen der Klasse machen Sie es Proxying?
Danke, Allain
Lösung
AFAIK, es hängt von Ihrer Bytecode Injektion lib. Denken Sie auch daran, dass typischerweise Anmerkungen nicht vererbt werden (auferlegt durch die Java-Spezifikation). Wenn Sie die ursprüngliche Klasse zugreifen möchten, und verwenden CGLIB, können Sie diese Schnipsel verwenden:
if (Enhancer.isEnhanced(getClass())) {
currClass = UnEnhancer.unenhance(getClass());
} else {
// else, let's get the original class directly
currClass = getClass();
}