JPA
JPA是一套基于ORM的规范,hibernate框架中提供了JPA的实现
JPA的内部是一套抽象类和接口组成的,是一套规范的java持久化API
JPA的优势
标准化 容器级特性的支持 简单方便 查询能力 高级特性
JPA的两个功能
注解开发 JPA接口开发
注解开发 hibernate+ annotation的开发方式
@Entity 声明实体类
@Table 表的名称
@ID 声明主键
@GeneratedValue 配置主键的升成策略
@Column 属性对应的字段名称
一对多:
配置单项一对多
@OneToMany 来配置一对多
targetEntity : 配置单向一对多的时候 需要targetEntity 里面的属性值是结合属性的class字节码
@JoinColumn 新建一列作为外键
name: 外键的名称
referencedColumnName 参考的主键的名称
配置双项一对多 : 放弃外键的维护权
@OneToMany: 配置多对一
mappedBy : 放弃外键的维护权 (一的一方被映射过 属性值从多的一方copy)
多对一:
@ManyToOne : 配置多对一
targetEntity 一对一方的class字节码
@joinColum: 配置数据库表的外键
name: 外键的名称
referencedColumName ; 参考的主键的名称
多对多
配置多对多
@ManytoMany
targetEntity: 目标实体类的class字节码
@JoinColumn 配置中间表
name: 中间表的名称
joinColumn 接受一个@JoinColumn的数组 配置自身在中间表的外键
@JoinColumn:
name: 自身在中间表的外键名
referencedColumName: 自身的主键
inverseJoinColumn : 接受一个@JoinColumn的数组 配置对方在中间表的外键
@JoinColumn
name: 对方在中间表的外键名
referencedColumnName: 对方的主键
JPA 接口开发
创建一个eneitymanager工厂
创建一个eneitymanager
获取事务对象
开启事务
CURD
提交事务
释放资源