hibernate与JPA

问题:使用@Entity注解时需要导入相应的jar包,会发现有两个jar包可供选择,到底选择哪一个?

答案:选择javax.persistence。

为什么就要说说hibernate和JPA的关系了:

  JPA全称: Java Persistence API

  JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中,是持久化规范。

  Hibernate是JPA持久化规范的一种实现。除了Hibernate,还有EclipseLink(曾经的toplink),OpenJPA等可供选择,所以使用Jpa的一个好处是,可以更换实现而不必

改动太多代码。

  但是,注解式开发时,Hibernate对JPA的实现并不是又开发出完整一套新的注解,而是对JPA注解的补充,比如

  1. JPA中有Entity,Table,Hibernate中也有,但是内容不同,Hibernate的Entity是继承了JPA的,所以如果觉得JPA的不够用,直接使用Hibernate的即可
  2. JPA中有Column,OneToMany等,Hibernate中没有,也没有替代品

  而JPA的注解全部定义在 javax.persistence包中。

JPA在线官方文档:http://hibernate.org/orm/documentation/5.0/

注解的具体文档在 javax.persistence 包下的注解类型总结 Annotation Type Summry 中

 

 本文参考:https://www.cnblogs.com/zhujiabin/p/5861319.htmlhttps://blog.csdn.net/jarniyy/article/details/79379985

原文地址:https://www.cnblogs.com/luna-hehe/p/14813623.html