JPA规范
来源:互联网 发布:网络销售没经验怎么办 编辑:程序博客网 时间:2024/05/22 17:47
JPA是一种规范,而hibernate是JPA的一种实现
JPA全称为Java Persistence API ,Java持久化API是Sun公司在Java EE 5规范中提出的Java持久化接口。JPA吸取了目前Java持久化技术的优点,旨在规范、简化Java对象的持久化工作。使用JPA持久化对象,并不是依赖于某一个ORM框架。
JPA是目前比较流行的一种ORM技术之一,所以他拥有ORM技术的各种特点,当然他还有自己的一些优势:
1 标准化
JPA 是 JCP 组织发布的 Java EE 标准之一,因此任何声称符合 JPA 标准的框架都遵循同样的架构,提供相同的访问 API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行。
2 对容器级特性的支持
JPA 框架中支持大数据集、事务、并发等容器级事务,这使得 JPA 超越了简单持久化框架的局限,在企业应用发挥更大的作用。
3 简单易用,集成方便
JPA的主要目标之一就是提供更加简单的编程模型:在JPA框架下创建实体和创建Java 类一样简单,没有任何的约束和限制,只需要使用 javax.persistence.Entity进行注释;JPA的框架和接口也都非常简单,没有太多特别的规则和设计模式的要求,开发者可以很容易的掌握。JPA基于非侵入式原则设计,因此可以很容易的和其它框架或者容器集成。
4 可媲美JDBC的查询能力
JPA的查询语言是面向对象而非面向数据库的,它以面向对象的自然语法构造查询语句,可以看成是hibernate HQL的等价物。JPA定义了独特的JPQL(Java Persistence Query Language),JPQL是EJB QL的一种扩展,它是针对实体的一种查询语言,操作对象是实体,而不是关系数据库的表,而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性,甚至还能够支持子查询。
5 支持面向对象的高级特性
JPA 中能够支持面向对象的高级特性,如类之间的继承、多态和类之间的复杂关系,这样的支持能够让开发者最大限度的使用面向对象的模型设计企业应用,而不需要自行处理这些特性在关系数据库的持久化。
实例中使用的注释列表如下。
注解
描述
@Entity
声明类为实体或表。
@Table
声明表名。
@Basic
指定非约束明确的各个字段。
@Embedded
指定类或它的值是一个可嵌入的类的实例的实体的属性。
@Id
指定的类的属性,用于识别(一个表中的主键)。
@GeneratedValue
指定如何标识属性可以被初始化,例如自动,手动,或从序列表中获得的值。
@Transient
指定的属性,它是不持久的,即,该值永远不会存储在数据库中。
@Column
指定持久属性栏属性。
@SequenceGenerator
指定在@GeneratedValue注解中指定的属性的值。它创建了一个序列。
@TableGenerator
指定在@GeneratedValue批注指定属性的值发生器。它创造了的值生成的表。
@AccessType
这种类型的注释用于设置访问类型。如果设置@AccessType(FIELD),然后进入FIELD明智的。如果设置@AccessType(PROPERTY),然后进入属性发生明智的。
@JoinColumn
指定一个实体组织或实体的集合。这是用在多对一和一对多关联。
@UniqueConstraint
指定的字段和用于主要或辅助表的唯一约束。
@ColumnResult
参考使用select子句的SQL查询中的列名。
@ManyToMany
定义了连接表之间的多对多一对多的关系。
@ManyToOne
定义了连接表之间的多对一的关系。
@OneToMany
定义了连接表之间存在一个一对多的关系。
@OneToOne
定义了连接表之间有一个一对一的关系。
@NamedQueries
指定命名查询的列表。
@NamedQuery
指定使用静态名称的查询。
- JPA规范
- JPA规范
- JPA规范
- jpa规范
- JPA规范的主要内容
- OPENJPA使用JPA规范
- JPA规范使用总结
- JPA规范介绍
- jpa命名规范
- Hibernate4.1.4使用JPA规范
- 拥抱JPA规范(转载)
- 基于hibernate实现jpa规范
- 加入jpa规范后,JavaBean的要求
- Hibernate4之JPA规范配置详解
- Hibernate4之JPA规范配置详解
- Hibernate4之JPA规范配置详解
- Hibernate4之JPA规范配置详解
- JPA Java Persistence API规范简介
- (C++)跨平台日志库——yaolog v1.6
- 暑期集训之结构体重载
- 2 B
- 1017. A除以B (20)
- IFrame自适应内容高度
- JPA规范
- EA&UML日拱一卒-活动图::Object actions(续)
- goldengate 一些参数整理
- CommandLineParser类(命令行解析类)
- 实习日志2
- 任意数求和(不限传递实参个数,都可以求和 对非有效数字的实参值进行规避 在函数外面可以使用求和的结果)
- CentOS7(64位)查看CPU和NVIDIA显卡温度
- (十二)Path 及贝塞尔曲线
- Linux —— Vim错误 E37:No write since last change(add!to override)