jpa jpal什么意思
本篇文章给大家谈谈jpa,以及jpal什么意思对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
jpa是什么,和hibernate类似?
1、JPA全称Java Persistence API. JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
JPA的主要目标之一就是提供更加简单的编程模型:在JPA框架下创建实体和创建Java 类一样简单,没有任何的约束和限制,只需要使用 javax.persistence.Entity进行注释,JPA的框架和接口也都非常简单,没有太多特别的规则和设计模式的要求,开发者可以很容易地掌握。JPA基于非侵入式原则设计,因此可以很容易地和其它框架或者容器集成。
2、Hibernate是JPA的具体实现。但是Hibernate出现的时间早于JPA。JPA是SUN在持久化框架发展起来后提出的规范。Hibernate从3.2开始,就开始兼容JPA。Hibernate3.2获得了Sun TCK的JPA(JavaPersistence API) 兼容认证。
Hibernate作为JPA的一种实现,jpa的注解已经是hibernate的核心,hibernate只提供了一些补充,而不是两套注解。hibernate对jpa的支持够足量,在使用hibernate注解建议使用jpa。
扩展资料
JPA查询能力
JPA的查询语言是面向对象而非面向数据库的,它以面向对象的自然语法构造查询语句,可以看成是Hibernate HQL的等价物。JPA定义了独特的JPQL(Java Persistence Query Language),JPQL是EJB QL的一种扩展,它是针对实体的一种查询语言,操作对象是实体,而不是关系数据库的表,而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性,甚至还能够支持子查询。
高级特性
JPA 中能够支持面向对象的高级特性,如类之间的继承、多态和类之间的复杂关系,这样的支持能够让开发者最大限度的使用面向对象的模型设计企业应用,而不需要自行处理这些特性在关系数据库的持久化。
参考资料来源::JPA
JPA的几个常用方法
1. persist():将临时状态的对象保存进数据库。【插入一条新记录】
//由于涉及数据库增删改,执行该语句前需启用事务
entityManager.persist(modelObject);
2.merge():将对象存入数据库,不同于persist(),merger()对于操作的对象,如果对象存在于数据库则对对象进行修改,
如果对象在数据库中不存在,则将该对象作为一条新记录插入数据库。
entityManager.merge(modelObject);
3.find()与getReference():查找对象。不同点:
当对象不存在时,find()返回null, getReference()会抛出javax.persistence.EntityNotFoundException异常
4.remove():将对象从数据库中删除。
entityManager.remove(entityManager.getReference(ModelObject.class,key));
5.refresh(Object obj):重新从数据库中读取数据。
6.contains(Object obj):判断对象是否在数据库中存在,返回true \ false。
7.flush():立即写入数据库。
执行persist()、merger()时,数据并不是立即写入数据库中,
而是由JPA缓存起来,在执行flush()时写入。
在事务提交的时候,JPA会自动执行flush()一次性保存所有数据。
如果需要立即保存,可手动执行flush()。
setFlushModel():修改EntityManager的Flush模式。
EntityManager的Flush模式默认为FlushModel.AUTO,这种模式下,在执行查询
(指使用JPQL语句查询时,不包括find()和getReference()查询)或事务提交时自动执行flush()。通过setFlushModel( FlushModel f )设置为FlushModel.COMMIT,该模式下只有在事务提交时才会执行flush()写入数据库。
什么是jpa,他跟hibernate是什么关系?
1,JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据。,而Hibernate是它的一种实现。除了Hibernate,还有EclipseLink(曾经的toplink),OpenJPA等可供选择,所以使用Jpa的一个好处是,可以更换实现而不必改动太多代码。
2,Hibernate作为JPA的一种实现,jpa的注解已经是hibernate的核心,hibernate只提供了一些补充,而不是两套注解。hibernate对jpa的支持够足量,在使用hibernate注解建议使用jpa。
通常所说的jpa指的是啥
1. JPA概念
Java persistence API的简称,中文名是Java持久层API,
是JDK5.0注解或XML描述对象-关系表的映射关系,
并将运行期的实体对象持久化到数据库中。
(对象持久化:是将内存中的对象保存到可永久保存的存储设备中的一种技术)
2. JPA出现的原因
1.简化现有JavaEE和JavaSE应用的对象持久化的开发工作;
2.Sun希望整合ORM技术,实现在持久化领域的统一应用;
3. JPA提供的技术
1.ORM映射元数据
JPA支持XML和JDK5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系框架据此将实体对象持久化到数据库表中;(元数据:是指用来描述数据的数据,就是描述代码间关系的数据,如:hibernate是用hbm文件。JDK5.0出来后,java语言中就有了四种类型(TYPE),即类(class)、枚举(enum)、接口(interface)和注解(@interface),它们是处在同一级别的。java就是通过注解来表示元数据的。)
2.JPA的API
用来操作实体对象,执行crud操作,框架在底层替我们完成所有的事情,开发者从繁琐的JDBC 和 SQL代码中解脱;
3.查询语言
通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合;
JPA是什么?
JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据。它的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate、TopLink,JDO等ORM框架各自为营的局面。值得注意的是,JPA是在充分吸收了现有Hibernate、TopLink,JDO等ORM框架的基础上发展而来的,具有易于使用、伸缩性强等优点。从目前的开发社区的反应上看,JPA受到了极大的支持和赞扬,其中就包括了Spring与EJB3.0的开发团队。着眼未来几年的技术走向,JPA作为ORM领域标准化整合者的目标应该不难实现。 JPA的总体思想和现有Hibernate、TopLink、JDO等ORM框架大体一致。总的来说,JPA包括以下3方面的技术:ORM映射元数据JPA支持XML和JDK5.0注解两种元数据形式,元数据描述对象和表之间的映射关系,框架据此将实现对象持久化到数据库表中。Java持久化API用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者可以从繁琐的JDBC和SQL代码中解脱出来。查询语言这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合
希望这篇文章能够帮助读者更好地了解jpa,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。