当前位置: 首页 > 知识库问答 >
问题:

需要Javers和MyBatis集成帮助

殳勇
2023-03-14

我在尝试将MyBatis和Javers(与Spring)集成并工作时遇到了问题。我已经按照http://Javers.org/documentation/spring-integration/上的说明进行了方面设置,注释了实体类并用Javers注册了它,MyBatis接口用@repository和@javersauditable正确地注释了适当的方法,但仍然没有使它工作,甚至在Javers方面设置了断点,但没有触发器。

我也用了另一种方法,使用MyBatis插件拦截器,按照http://www.MyBatis.org/mybatis-3/configuration.html#plugins(然后使用http://www.MyBatis.org/spring/xref-test/org/MyBatis/spring/executorinterceptor.html作为提交的基本示例)。然而,当它触发时,它并没有像我期望的那样做,基本上只是commit方法的一个方面,它接受布尔值,而不是包含要提交的实体,这样我就可以将它们传递给Javers。我想我可以在update/insert MyBatis方法上添加一个拦截器,然后将其存储在ThreadLocal或类似的方法中,这样当调用commit/rollback时,我可以根据需要将其传递给Javers,但这很麻烦。

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

共有1个答案

单于帅
2023-03-14

因此,在我的困惑中,我意识到,由于MyBatis为映射器接口生成具体对象,所以Spring似乎从来没有创建过该对象,只是将最终对象注册为上下文中的Bean。因此,Javers从来没有机会在创建Bean时处理它,以便执行任何代理或其他不必要的操作。

所以,傻我。因此,我最终创建了一个Spring-Data@repository层,它主要只是将调用传递给映射器。虽然在更新时,我做了一些额外的部分,但DAO shim层(我称之为它)可以很好地处理这些部分。

 类似资料:
  • 我正在开发big Java enterpriseware(如果您介意的话,MatrixOne/EnoviaV6)。维护者提供了某种Javadoc,看起来非常普通的Javadoc,我可以在浏览器中以HTML的形式阅读。 在了解到Javadoc可以在project和级别定义之后,我尝试同时进行这两种定义,知道: javadoc文件夹包含一个文件,该文件似乎正确地定义了文档包 javadoc文件夹包含典

  • 在一个HTML文件中, 包含许多 ,而在另一个 中, 包含许多 。使用我需要的JavaScript,当我悬停在第一个上时,第一个 的背景颜色会发生变化,以此类推... 匿名用户 你的问题是如此令人困惑,提供一个屏幕截图或绘图表明你实际想要什么。

  • 编辑:实际上,项目使用JPA2进行持久化,并使用Hibernate实现(JBOSS server)

  • 首先,我是C、C++、C#、Android和Swift的开发人员,但我绝对没有JavaScript、PHP或Web开发经验。 即只接受整数值的输入。 这是刀片代码:

  • 1. 前言 企业级应用数据持久层框架,最常见的应该是 Hibernate 和 MyBatis 。 Hibernate 是相当彻底的 ORM 对象 - 关系映射框架,使用 Hibernate ,开发者可以不考虑 SQL 语句的编写与执行,直接操作对象即可。 与 Hibernate 相比, MyBatis 还是需要手工编写 SQL 语句的。恰好由于互联网行业数据量非常巨大,对 SQL 性能有比较苛刻的

  • 1. 前言 spring-boot 可谓是 Java 领域中最火的框架之一, 也是目前 Java 应用开发的事实标准,如果不会使用未免有些 out。本小节,我们将一起学习如何使用 spring-boot 来集成 MyBatis。 2. 项目初始化 对于拥有 IDEA 专业版的人来说,新建 spring-boot 项目是十分方便的,当然如果你没有也没关系,Spring 官方给我们提供了一个快速新建项