我遇到了一些问题,试图让MyBatis和Javer(用Spring)集成和工作。我遵循了http://javers.org/documentation/spring-integration/的指令,得到了方面设置,并对实体类进行了注释,并在Javer中注册了它,并在适当的方法上正确地用@Repository和@ Javers注释了MyBatis接口,但仍然没有让它工作,甚至在Javer方面设置断点,但没有触发。
我也采用了另一种方式,使用MyBatis插件拦截器,按照http://www.mybatis.org/mybatis-3/configuration.html#plugins (然后使用http://www.mybatis.org/spring/xref-test/org/mybatis/spring/ExecutorInterceptor.html作为提交的基本示例)。然而,当它触发时,它并没有做我所期望的事情,它基本上只是提交方法的一个方面,它采用一个布尔值,而不是包含正在被执行的实体(Ies),这将允许我将它们传递给Javer。我想我可以在update/insert MyBatis方法上添加一个拦截器,然后将它存储在一个ThreadLocal或类似的地方,以便在调用提交/回滚时,我可以根据需要将它传递给Javer,但这很麻烦。
我不知道从这里往哪里走,除非有人能看到我用这两种方法之一错过的东西。
发布于 2016-03-30 20:39:13
因此,在我的困惑中,我意识到,由于MyBatis为Mapper接口生成了具体的对象,所以Spring似乎从来没有创建过该对象,只是在上下文中将最后一个对象注册为Bean。因此,Javer从来没有机会处理Bean,因为它的创建是为了做任何代理或其他不需要的事情。
所以,愚蠢的我。因此,我最终创建了一个Spring-Data @Repository层,该层主要是将调用传递给Mapper。虽然在更新时,我做了一些额外的比特,DAO shim层(正如我所说的那样)可以很好地工作。
https://stackoverflow.com/questions/36211597
复制相似问题