2016-03-24 8 views
0

Ich habe Probleme, MyBatis und Javers (mit Spring) zu integrieren und zu arbeiten. Ich habe die Anweisungen unter http://javers.org/documentation/spring-integration/ befolgt und das Aspect-Setup erhalten, meine Entity-Klasse mit Annotationen versehen und bei Javers registriert, und die MyBatis-Schnittstelle wurde mit @Repository und @JaversAuditable mit den entsprechenden Methoden korrekt kommentiert, aber immer noch nicht zum Laufen gebracht Es werden sogar Haltepunkte im Javer Aspect gesetzt, aber nichts löst aus.Javers und MyBatis Integrationshilfe benötigt

Ich bin auch über den anderen Weg gegangen, mit MyBatis Plugin Interceptor, wie http://www.mybatis.org/mybatis-3/configuration.html#plugins (dann http://www.mybatis.org/spring/xref-test/org/mybatis/spring/ExecutorInterceptor.html als ein grundlegendes Beispiel für commits). Aber während es auslöst, tut es nicht, was ich erwartet habe, und es ist im Grunde genommen nur ein Aspekt der Commit-Methode, die einen Booleschen Wert annimmt, anstatt zu enthalten, welche Entity (en) commited werden, die mich an Javers weitergeben könnten. Ich nehme an, ich könnte einen Interceptor auf die update/insert MyBatis-Methoden hinzufügen und dann in einem ThreadLocal o.ä. speichern, so dass ich beim Commit/Rollback es bei Bedarf an Javers weitergeben könnte, aber das ist chaotisch.

Ich habe keine Ahnung wohin von hier zu gehen, außer jemand kann etwas sehen, was ich mit einer dieser beiden Methoden verpasst habe.

Antwort

0

Also in meiner Verwirrung, erkannte ich, dass, da MyBatis das konkrete Objekt für die Mapper-Interfaces erzeugt, Spring scheint nie die Schaffung dieses Objekts, hat einfach das endgültige Objekt als Bean im Kontext registriert. Daher hat Javers niemals die Chance, die Bean zu verarbeiten, wenn sie erstellt wurde, um irgendwelche Proxies durchzuführen oder was auch immer nicht.

Also, dumme mich. Also habe ich am Schluss eine Spring-Data @ Repository-Ebene erstellt, die den Aufruf größtenteils an den Mapper weiterleitet. Obwohl ich auf Updates bin, mache ich ein paar extra Bits, die die DAO-Shim-Ebene (wie ich es nenne) gut funktioniert.