[英]how hibernate can work without JPA specification
我当时在从事没有JPA
项目,但是它使用的是Hibernate
,谁能解释一下吗?
项目的pom.xml
:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.1.3.Final</version>
</dependency>
Hibernate是一个JPA实现,这意味着当您使用JPA时,您可以使用Hibernate,EclipseLink或任何其他实现,但是您将根据JPA规范进行编码,即使用javax.persistence.*
接口,通常避免使用特定于实现的代码功能(尽管仍然可行)。
如果直接使用Hibernate进行编码,则将仅使用其特定的类(即org.hibernate.*
)和方式,而在任何地方都没有引用javax.persistence
。
它类似于JDBC
。 您可以编写使用特定于驱动程序的类的代码(有时,但有一些并非经常,有这样做的正当理由),但是有些类实现了JDBC接口( Connection
, ResultSet
, Statement
等),因此您可以编写常规代码切换到其他数据库时无需再次学习的JDBC代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.