问题:使用@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注解的补充,比如
- JPA中有Entity,Table,Hibernate中也有,但是内容不同,Hibernate的Entity是继承了JPA的,所以如果觉得JPA的不够用,直接使用Hibernate的即可
- 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.html,https://blog.csdn.net/jarniyy/article/details/79379985