首先,JPA不是ORM框架,而是SUN官方提出的JAVA持久化规范。JPA整合了现有的Hibernate、TopLink等ORM框架,具有易于使用、伸缩性强等优点。
关于JPA的知识。
1. JPA规范要求在类路径的META-INF目录下放置persistence.xml,文件的名称是固定的,配置模版可见hibernate-entitymanager开发包
2. JPA ORM映射元素数据有XML和注解两种方式。
JPA有哪些常用的注解
1) 在实体bean中用注解@Entity来指定实体以让jpa知道生成数据库中的表
2) 在实体bean中用注解@Column(length,nullable,name)指定数据库中的表的字段的长度,是否为空即字段的名字
3) 在实体类的前面用注解@Table(name="xx")指定生成表的名字
4) 在实体类中用注解@Temporal(TemporalType.Date)指定生日的时间类型
5) @Enumerated(EmumType.STRING//保存到数据库中是索引还是字符串)注解指定枚举类型
6) @Lob声明属性对应的数据库字段为大文本类型,可以存放大的数据(文本和字节)
7) @Transient不成为持久化字段及不跟数据库中的字段形成映射
8) @Basic(fetch=FetchType.LAZY)//是否把数据装载到内存中延迟初始化,第一次访问的时候在加载数据,一般用在大数据存放
9) @Embeddable指定联合组键
3. JPA的增删改查:
1) 读取数据不要开启事务,只要有更改数据的动作才需要开启事务
2) 增加数据:em.persist(new Person("李四"));//插入
3) 删除数据:em.remove(person); //删除(注意有外键约束时,需要先解除外键约束才能删除)
4) 更新数据:
方法一:Person person = em.find(Person.class,1);
person.setName("李四");(1).跟事务关联在一起了(2)对象处于托管状态
方法二:Person person = em.find(Person.class,1);
em.clear();//把实体管理器中的所有实体变成游离状态
person.setName("李四");//现在还是不可以,实体还是处于游离状态
em.merge(person);//把游离状态中的实体bean同步到数据库
5) 查看数据:
方法一:Person person = em.find(Person.class,1);//查看数据,1为对象在数据库中的id值
方法二:Person person = em.getReference(Person.class,1);//没有值不出现异常,只person.getName()的时候报异常
em.refresh(person);//进行数据库刷新,拿出最新的数据
4. JPA中四种数据库状态:(1)新建:刚new出对象来的时候 (2)托管:从数据库中查出来的时候 (3)游离 (4)删除
5. JPA的查询语句:Query query = em.createQuery("select o from Person o");//必须有select o,id=等于后面不要直接写值以免sql注入
(1)匿名查询用:id
(2)未参数查询?1即:where o.id=?1//指明?的值从索引1开始
query.getSingleResult();//得到唯一的结果,前提是记录必须要存在啊,要不然会出错
6. JPA中的关系映射:
1) 一对多:多的一方为关系维护端,关系维护端负责外键记录的更新,关系被维护端没有权利更新外键记录,关系维护端@JoinColumn可以指定外键的名称,关系维护端@ManyToOne(cascade,optional)可以指定级联属性和关系被维护端是否为必须,关系被维护端需要指定mappedBy属性,可以设置fetch(延迟加载)属性
2) 一对一和多对多和一对多类似,关系维护端可以根据实际情况进行选取
3) 联合组键:主键类需要实现Serializable接口,重写equals()方法
相关推荐
JPA详细使用说明!由他一个足以!啥po的继承,一对多,多对多和JPA的配置该文档都有的!
Jpa.doc
JPA核心知识总结 详解 spring JPA
本文档主要记录了一些我在项目中使用JPA时总结的一些小点,包括:配置、查询(包括动态查询+分页)、传参、基本注解等
详细的JPA注解总结大全 ,,,,,,,
JPA学习笔记-EJB-04JPA关联映射总结 JPA JPA关联映射JPA学习笔记-EJB-04JPA关联映射总结 JPA JPA关联映射
JPA规范实现,用JPA来解决可移植问题
总结一下关于JPA的主键生成策略,JPA是用@GeneratedValue标记来注释的。一般的我把主键生成分成两大类。第一个就是简单的单字段主键类型,一个就是复杂的复合主键类型。我们分2种情况分别讨论。 第一种单字段主键...
01_传智播客JPA详解_全面阐释和精彩总结JPA.rar
JPA的JPQL语法总结,大都是写数据的语法语句
JPA注解详解 hibernate 标注 适合各种数据库 Hibernate+JPA注解教程
jpa学习总结,pdf类型的,详细介绍了jpa的应用,对了解jpa的入门有一定的指导作用的,本资源下载源于传智播客的视频课程。
EJB3使用注解进行开发总结,主要适用于快速入门的朋友
JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系。
01_JPA详解_全面阐释和精彩总结JPA.zip 01_JPA详解_全面阐释和精彩总结JPA.zip
这是一个jpa(hibernate)的学习代码,是我学习JPA的总结,包含三个案例,一对一、一对多、多对多 。 eclipse工具编码为utf-8
Spring Data JPA 是 spring data 项目下的一个模块。提供了一套基于 JPA标准操作数据库的简化方案。底层默认的是依赖 Hibernate JPA 来实现的。该资源是对SpringDataJpa的总结,详细而且精简。
JPA开发文档总结 包括:1)发展中的持久化技术 2)JPA体系架构 3)Entity Bean 4)EntityManager 5)JPA Query 总共5个部分