MyBatis 是不是遵循 JPA?

Posted

技术标签:

【中文标题】MyBatis 是不是遵循 JPA?【英文标题】:Does MyBatis follows JPA?MyBatis 是否遵循 JPA? 【发布时间】:2019-03-25 18:29:03 【问题描述】:

作为我的第一个 ORM,我已经使用 myBatis 工作了几个月。现在我正在尝试学习其他东西,比如 Hibernate/JPA。起初很难理解 Hibernate 和 JPA 之间的区别。经过几分钟的研究,我了解到 JPA 只是一个规范,而 Hibernate 是 JPA 的具体实现。在此视频中:link 一切都得到了很好的解释,但视频的作者将 myBatis(iBatis) 视为 JPA 实现。这是一个好方法吗? myBatis 是否遵循 JPA?有一个答案,但已经 11 岁:link2。在我的带有 myBatis 的应用程序中,我不必使用 JPA 特定的对象/注释,所以这意味着 myBatis 不遵循 JPA?

【问题讨论】:

没有。 myBatis 文档在 Internet 上的任何地方都没有提到实现 JPA。 JPA API 已被广泛记录,您的使用不会使用这些类/方法,那么它怎么能呢???您提供的链接问了同样的问题(对于 iBatis,它与 myBatis 相同,因为它是简单重命名之前的原始版本)......答案是“不,绝对不是”。你能清楚到什么程度???? 复制***.com/questions/33652936/spring-data-jpa-mybatis @BillyFrost 我知道这个问题有点愚蠢。我只是想确定我是否能很好地理解它,因为 JPA 的概念对我来说是新的。无论如何,谢谢你的回答。 【参考方案1】:

myBatis 没有实现 JPA。

在您提到的视频中,没有任何关于 ibatis/mybatis 是 JPA 实现的内容。 mybatis 被视为 ORM(它是)。视频中说hibernate、ibatis和toplink都有非常不同的接口,你不能随便换一个。如果有一个 API 允许使用不同的实现,那就太好了。但这并不意味着所有提到的 ORM 都实现了 JPA(作为这样的 API)。

【讨论】:

以上是关于MyBatis 是不是遵循 JPA?的主要内容,如果未能解决你的问题,请参考以下文章

spring boot 集成 Mybatis,JPA

springboot官方为何不支持mybatis,而选择底层为hibernate的JPA?

Mybatis JPA

Spring data Jpa,Mybatis,读写锁,@Lock 使用

Mybatis与Jpa的区别与性能对比总结

技术专题讨论:JPA vs MyBatis ?您如何选择?(有奖活动)