需要Javers和MyBatis集成帮助

时间:2016-03-24 23:18:56

标签: mybatis spring-mybatis javers

我在尝试将MyBatis和Javers(使用Spring)集成并正常工作时遇到了问题。我已经按照http://javers.org/documentation/spring-integration/的说明操作并获得了Aspect设置,并注释了我的实体类并将其注册到Javers,并且MyBatis接口在适当的方法上使用@Repository和@JaversAuditable正确注释,但仍然是& #39; t得到它的工作,甚至在Javers方面设置断点,但没有任何触发。

我还使用MyBatis插件拦截器,按照http://www.mybatis.org/mybatis-3/configuration.html#plugins(然后使用http://www.mybatis.org/spring/xref-test/org/mybatis/spring/ExecutorInterceptor.html作为提交的基本示例),以另一种方式解决了这个问题。然而,当它触发时,它没有按照我的预期进行操作,基本上只是一个提交方法的一个方面,它采用布尔值而不是包含哪些实体(ies)被提交,这将让我将它们传给Javers。我想我可以在更新/插入MyBatis方法上添加一个拦截器,然后将它存储在ThreadLocal或类似的中,这样当调用commit / rollback时我可以根据需要将它传递给Javers,但那很麻烦。 / p>

我不知道从哪里开始,除非有人能看到我用这两种方法之一错过的东西。

1 个答案:

答案 0 :(得分:0)

所以在我的困惑中,我意识到,由于MyBatis为Mapper接口生成具体对象,Spring似乎永远不会创建该对象,只是在上下文中将最终对象注册为Bean。因此,Javers永远不会有机会处理Bean,因为它是为了进行任何代理或不必要的。

所以,傻我。所以我最终创建了一个Spring-Data @Repository层,它主要是将调用传递给Mapper。虽然在更新时我正在做一些额外的比特,DAO垫片层(我正在调用它)效果很好。