1.介绍
- JPA全称:Java Persistence API
- JPA吸取了目前Java持久化技术的优点,旨在规范、简化Java对象的持久化工作\
- 拥有等价于hibernateHQL的JPQL(Java Persistence Query Language)–>查询语言
2.注解
- @Entity:标识实体类是JPA实体,告诉JPA在程序运行时生成实体类对应表
- @Table:设置实体类在数据库所对应的表名
- @Id:标识类里所在变量为主键
- @GeneratedValue:设置主键生成策略,此方式依赖于具体的数据库
- @Basic:表示简单属性到数据库表字段的映射
- @Column:表示属性所对应字段名进行个性化设置
- @Transient:表示属性并非数据库表字段的映射,ORM框架将忽略该属性
- @Temporal:当我们使用到java.util包中的时间日期类型,用于转化时间类型
1. TemporalType.DATE(年-月-日)
2. TemporalType.TIME(时:分:秒)
3. TemporalType.TIMESTAMP(年-月-日 时:分:秒.00001) - @Enumerated:使用此注解映射枚举字段,以String类型存入数据库
1. EnumType.ORDINAL(Interger)
2. EnumType.STRING(String) - @Embeddable:注解在类上,表示此类是可以被其他类嵌套
- @Embedded:注解在属性上,表示嵌套被@Embeddable注解的同类型类
- @ElementCollection:集合映射
3.与hibernate的区别
- JPA: 相当于Java持久层的API,提供对象/关联映射工具,方便开发人员进行管理
1) 支持注解形式与XML形式,元数据描述对象与表的关系,框架据此将实体持久化到数据库中
2) 使用实体类来操作对象,减少开发人员sql的编写工作量
3) JPA是一种规范而不是框架 - Hibernate: Java中的对象关系映射解决方案
1) 不仅仅关注从java类到数据库表的映射,也有Java数据类型到Sql数据类型的映射
2) Hibernate是JPA的一种实现方式,一个框架 - Spring Data JPA(延伸):
1) Spring Data 是Spring的一个子项目,用来使访问数据库变的更加简单(sql及nosal)
2) Spring Data JPA 是 Spring Data是基于JPA规范而封装的一套应用框架
3) Hibernate其实是JPA的一种实现,而Spring Data JPA是一个JPA数据访问抽象 - 总结:
1) Hibernate是JPA的一种实现,是一个框架
2) Spring Data JPA是一种JPA的抽象层,底层依赖Hibernate