jap帮助文档
### JPA帮助文档知识点概述 #### 一、JPA概览 **Java Persistence API (JPA)** 是一种Java规范,旨在为企业级应用提供一种统一、高效的方式来处理对象和关系数据库之间的交互。它作为Java EE 5 (Java Enterprise Edition 5)的一部分被引入,特别是作为Enterprise JavaBeans (EJB) 3.0规范的一部分。JPA的主要目标是简化持久化逻辑,减少开发工作量,并提供了一种对象关系映射(Object-Relational Mapping, ORM)的方法。 #### 二、JPA的关键特性 - **简化EJB持久性**: JPA简化了EJB持久性的实现过程,不再需要繁琐的容器管理实体Bean。 - **POJO支持**: JPA允许开发者将普通的Java对象(Plain Old Java Object, POJO)指定为持久化实体,这意味着这些对象可以被持久化到关系数据库中。 - **跨平台**: JPA可以在Java EE环境内或者简单的Java SE环境中使用,提供了高度的灵活性。 - **批注**: JPA使用批注来简化配置过程,使得开发者能够通过简单的元数据注解来定制实体的行为。 #### 三、实体批注 - **`@Entity`**: 此批注用于标识一个Java类为JPA实体,意味着这个类可以被持久化到数据库中。例如: ```java @Entity public class Employee implements Serializable { // ... } ``` - **实体默认行为**: 默认情况下,JPA假定一个Java类不是一个持久化实体,除非使用@Entity或其他方式明确指明。 #### 四、数据库模式属性批注 - **`@Table`**: 用于指定实体映射到的具体数据库表。 - **`@SecondaryTable`**: 当一个实体需要映射到多个表时使用。 - **`@SecondaryTables`**: 同上,但可以指定多个次要表。 - **`@Column`**: 指定实体属性映射到的数据库列的细节。 - **`@JoinColumn`**: 在多对一或多对多关系中,用于指定关联的数据库表之间的连接列。 - **`@JoinColumns`**: 同上,但可以指定多个连接列。 - **`@PrimaryKeyJoinColumn`**: 用于一对一关系中,当主键共享时使用。 - **`@PrimaryKeyJoinColumns`**: 同上,但可以指定多个主键列。 - **`@JoinTable`**: 在多对多关系中用于指定连接表。 - **`@UniqueConstraint`**: 用于指定实体表中的唯一约束。 #### 五、身份标识批注 - **`@Id`**: 指定实体中的主键字段或属性。 - **`@IdClass`**: 当主键是由多个字段组成时使用。 - **`@EmbeddedId`**: 指示实体使用复合主键。 - **`@GeneratedValue`**: 控制主键的生成策略。 - **`@SequenceGenerator`**: 配置序列生成器。 - **`@TableGenerator`**: 配置表生成器。 #### 六、直接映射批注 - **`@Basic`**: 默认情况下,JPA为大多数基本类型自动配置一个Basic映射,此批注用于自定义这种映射。 - **`@Enumerated`**: 指定枚举类型的映射方式。 - **`@Temporal`**: 指定日期和时间类型的映射方式。 - **`@Lob`**: 用于标识大对象(BLOB/CLOB)类型。 - **`@Transient`**: 指示一个属性不应该被持久化。 #### 七、关系映射批注 - **`@OneToOne`**: 一对一关系。 - **`@ManyToOne`**: 多对一关系。 - **`@OneToMany`**: 一对多关系。 - **`@ManyToMany`**: 多对多关系。 - **`@MapKey`**: 用于标识映射关系中的键。 - **`@OrderBy`**: 用于指定集合属性的排序方式。 #### 八、组合批注 - **`@Embeddable`**: 用于标识可以嵌入到其他实体中的对象。 - **`@Embedded`**: 用于标识一个实体包含嵌入对象。 - **`@AttributeOverride`**: 用于覆盖嵌入对象中的属性映射。 - **`@AttributeOverrides`**: 同上,但可以指定多个属性覆盖。 - **`@AssociationOverride`**: 用于覆盖关系映射。 - **`@AssociationOverrides`**: 同上,但可以指定多个关系覆盖。 #### 九、继承批注 - **`@Inheritance`**: 定义继承策略。 - **`@DiscriminatorColumn`**: 定义区分不同子类的列。 - **`@DiscriminatorValue`**: 定义具体子类的值。 - **`@MappedSuperclass`**: 定义超类的映射,该超类不被映射为数据库表,但它的子类会被映射。 - **`@Entity`**: 用于标识实体类,即使是在继承场景中也是如此。 #### 十、总结 JPA通过一系列的批注提供了一种强大而灵活的方式来定义实体和其数据库表之间的映射关系。通过使用这些批注,开发者可以轻松地控制实体的持久化行为,包括映射到数据库表的细节、字段级别的映射配置、关系映射以及更复杂的继承和组合场景。此外,JPA还支持多种不同的持久化策略,如懒加载(lazy loading)和急加载(eager loading),进一步增强了其灵活性和性能表现。
剩余63页未读,继续阅读
- tianshouzhi2014-07-02名字起错了,是JPA,不是jap,还是有一些参考作用的
- 粉丝: 0
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助