嗨,我正在阅读Spring in Action 3的书,我偶然看到了这一段,其中谈到了JPA事务,
需要注意的是,JpaDialect实现必须支持混合JPA/JDBC访问才能工作。Spring的所有特定于供应商的JpaDialect实现
(EclipseLinkJpaDialect、HibernateJpaDialect、OpenJpaDialect和TopLinkJpaDialect)提供了JPA与JDBC混合的支持。然而,DefaultJpaDialect没有。
我的问题是,当我们可以直接使用Hibernate而不是JPA时,Hibernate或iBATIS为什么要创建一个jpaDialect。我对此很陌生,并试图了解所有这些技术之间的联系,任何帮助都是非常感谢的。
谢谢,党卫军
发布于 2011-10-26 18:19:59
因为JPA是一种规范,而不是一种实现,而且有些人更喜欢只编写代码而不是规范。这就像对接口进行编程,而不是实现。
(我从未见过项目更改JPA实现,但我确信会发生这种情况。)
发布于 2011-10-26 18:21:46
Hibernate是一个ORM (对象-关系映射),JPA是Java持久性API。
简单描述:
-Hibernate角色是将数据库表映射到java对象。
-JPA角色是处理或提供将事务/持久化管理到给定数据库中的方法。
Hibernate provides an open source object-relational mapping framework for Java. Versions 3.2 and later provide an implementation for the Java Persistence API.因此,如果您使用Hibernate 3.2+,它已经实现了JPA规范,因此您不需要第三方JPA提供程序。
https://stackoverflow.com/questions/7907002
复制相似问题