Hier ist der Code:Wie kann ich eine Klasse mit cglib doppelt verbessern?
Patient patient = factory.createPatient();
Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(patient.getClass());
enhancer.setCallback(new DefaultMethodInterceptor(patient));
patient = (Patient) enhancer.create();
assertThat(patient.getFirstName()).isNotNull();
Enhancer enhancer2 = new Enhancer();
enhancer2.setSuperclass(patient.getClass());
enhancer2.setCallback(new DefaultMethodInterceptor(patient));
patient = (Patient) enhancer2.create();
assertThat(patient.getFirstName()).isNotNull();
Es mit
net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InvocationTargetException-->null
...
Caused by: java.lang.reflect.InvocationTargetException
...
Caused by: java.lang.ClassFormatError: Duplicate method name&signature in class file my/package/entity/Patient$$EnhancerByCGLIB$$ca1e6685$$EnhancerByCGLIB$$f52743be
ich dies am letzten assert nicht fragen, weil ich Hibernate will die Einheiten verbessern, aber manchmal gibt sie bereits diejenigen verstärkt von selbst und meinem zweiten Verbesserung schlägt fehl. Wie kann ich das vermeiden?
Danke, das hat den Trick gemacht. Es fiel mir schwer zu entdecken, welche Klasse die ursprüngliche war, schließlich schaffte ich es, alles von $$$ EnhancerByCGLIB $$ aus dem Namen der Klasse zu schneiden. – artemb