如果没有JPA规范,hibernate如何工作

时间:2016-11-18 17:22:24

标签: java hibernate jpa

我正在处理没有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>

1 个答案:

答案 0 :(得分:4)

Hibernate是一个JPA实现,这意味着当你使用JPA时,你可以使用Hibernate,EclipseLink或任何其他实现,但你可以根据JPA规范进行编码,即使用javax.persistence.*接口,通常避免使用特定于实现的功能(尽管仍然可以)。

如果你直接用Hibernate编码,你只会使用它的特定类(即org.hibernate.*)和方法,并且在任何地方都没有引用javax.persistence

JDBC类似。您可以编写使用特定于驱动程序的类的代码(有时候,但通常情况下,这是您需要的正确理由),但是有些类实现了JDBC接口(ConnectionResultSet,{ {1}}等等。所以你可以编写常规的JDBC代码,而不必在切换到不同的数据库时再学习。