您好我正在阅读Spring in Action 3的书,我看到了这段谈论JPA交易的内容,
重要的是要注意JpaDialect实现必须支持 为此工作混合JPA / JDBC访问。春天的全部 特定于供应商的JpaDialect实施方案 (EclipseLinkJpaDialect,HibernateJpaDialect,OpenJpaDialect和 TopLinkJpaDialect)为将JPA与JDBC混合提供支持。 但是,DefaultJpaDialect不会。
我的问题是,当我们可以直接使用Hibernate而不是JPA时,为什么Hibernate或iBATIS会创建一个jpaDialect。我是新手,并试图了解所有这些技术之间的联系,我们非常感谢任何帮助。
谢谢, SS
答案 0 :(得分:1)
因为JPA是规范,而不是实现,并且有些人更喜欢仅代码到规范。这就像编程到接口,而不是实现。
(我从未看到项目更改JPA实现,但我确信它会发生。)
答案 1 :(得分:1)
Hibernate是一个ORM(对象关系映射),JPA是Java Persistence 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提供程序。