JPA的详解及使用方法

来源:互联网 发布:港澳台联考 知乎 编辑:程序博客网 时间:2024/06/13 23:10

1.什么是JPA?

用于对象持久化的API

JPA规范:JPA本质是一种ORM规范,不是ORM框架,因为JPA并为提供ORM实现,他只是订制一些规范,提供一些编程的API的接口
Hibernate是实现:Hibernate除了作为ORM框架以外,它是一种JPA实现
功能上说:JPA是Hibernate功能的一个子集
2.JPA优势:
标准化;简单易用,集成方便;可以媲美JDBC的查询能力;支持面向对象的高级特性
3.JPA三方面的技术:
ORM映射元数据;JPA的API;查询语句(JPQL)
4.使用JPA持久化对象的步骤:
创建perisistence.xml文件,在配置文件中配置持久化单元(需要跟那个数据库进行交互,使用那个持久化框架以及配置框架的基本属性)
创建实体类,使用annotation来描述实体类跟数据表之间的映射关系

使用JPA API完成数据CRUD操作

5.JPA 的基本注解:
@Entity :指出该Java类为实体类,将映射到指定的数据库
@Transient :忽略该属性,不需要映射到数据表的一列,否则默认为@Basic
@Temporal :在属性上调整精度,比如Date
@Table :标注常用name属性,用于指定数据库的表明
@Id :映射主键(放在getter方法之前)
@GeneratedValue :用于标注主键的生成策略,通过strategy属性指定
@Column :映射数据表的列名,指定unique,length等
@Basic :基本注解,默认有
6.JPA   API:
Persistence:Persistence类用于获取EntityManagerFactory实列,该类包含一个名为createEntityManagerFactory的静态方法 
EntityManagerFactory:主要用来创建EntityManager实列createEntityManager();创建实体管理对象的实例。close():关闭EntityManagerFactory
refresh() ;clear() ; isOpen() ; close() ;
EntityTransaction:接口用来管理资源层实体管理器的事务操作。 getTransaction();获得其实例
begin() ; commit() ; rollback() ; setRollbackOnly() ; getRollbackOnly() ; isActive() ;

7.映射关系:
单向多对一:使用@ManyToOne来映射多对一关系映射;使用@JoinColumn来映射外键;建议先保存1的一端,后保存n的一端;可以使用@ManyToOne的fetch来修改默认的关联属性的加载策略
单向一对多:使用@OneToMany来映射一对多关系映射;使用@JoinColumn来映射外键;
双向一对一:使用@OneToOne来映射一对一对应关系映射;建议先保存不维护关联关系的一方,既没有外键的一方,
双向多对多:使用@ManyToMany来映射多对多关系映射;使用@JoinTable来映射中间表;name:指定外键的列名;rederenedColumnName:指定外键列关联的当期表的那一列;inverseJoinColumns:映射关联的类所在中间表的外键

8.Spring整合JPA:

LocalContainerEntityManagerFactoryBean:





原创粉丝点击