来源:www.oracle.com
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
JPA批注是EJB 3标准的一部分,用于为ORM框架提供基于批注的配置方式,但是JPA本身是独立于EJB 3的,可被任何的ORM框架使用。
本文的主要内容如下:
1、按照类别对JPA批注进行划分,划分为11个类别,各个类别及其可以使用的批注(括号内即为可以使用的批注)如下:
⑴ 实体(@Entity)
⑵ 数据库模式属性(@Table、@SecondaryTable、@SecondaryTables、@Column、@JoinColumn、@JoinColumns、@PrimaryKeyJoinColumn、@PrimaryKeyJoinColumns、@JoinTable、@UniqueConstraint)
⑶ 身份(@Id、@IdClass、@EmbeddedId、@GeneratedValue、@SequenceGenerator、@TableGenerator)
⑷ 直接映射( @Basic、@Enumerated、@Temporal、@Lob、@Transient)
⑸ 关系映射(@OneToOne、@ManyToOne、@OneToMany、@ManyToMany、@MapKey、@OrderBy)
⑹ 组合(@Embeddable、@Embedded、@AttributeOverride、@AttributeOverrides、@AssociationOverride、@AssociationOverrides)
⑺ 继承(@Inheritance、@DiscriminatorColumn、@DiscriminatorValue、@MappedSuperclass、@AssociationOverride、@AssociationOverrides、@AttributeOverride、@AttributeOverrides)
⑻ 锁定(@Version)
⑼ 生命周期回调事件(@PrePersist、@PostPersist、@PreRemove、@PostRemove、@PreUpdate、@PostUpdate、@PostLoad、@EntityListeners、@ExcludeDefaultListeners、@ExcludeSuperclassListeners)
⑽ 实体管理器(@PersistenceUnit、@PersistenceUnits、@PersistenceContext、@PersistenceContexts、@PersistenceProperty)
⑾ 查询(@NamedQuery、@NamedQueries、@NamedNativeQuery、@NamedNativeQueries、@QueryHint、@ColumnResult、@EntityResult、@FieldResult、@SqlResultSetMapping、@SqlResultSetMappings)
2、详细解释了下面4个批注的含义及其批注所包含的属性:
@AssociationOverride
@AssociationOverrides
@AttributeOverride
@AttributeOverrides
注意:原文有错误的之处已经在这里全部更正。
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
作为 Java 企业版 5 (Java EE 5) Enterprise Java Bean (EJB) 3.0 规范的组成部分,Java 持续性 API (JPA) 显著简化了 EJB 持续性并提供了一个对象关系映射方法,该方法使您可以采用声明方式定义如何通过一种标准的可移植方式(在 Java EE 5 应用服务器内部以及 Java 标准版 (Java SE) 5 应用程序中的 EJB 容器外部均可使用)将 Java 对象映射到关系数据库表。
在 JPA 之前,Java EE 应用程序将持续类表示为容器管理的实体 bean。使用 JPA,您可以将任何普通的旧式 Java 对象 (POJO) 类指定为 JPA 实体:一个应使用 JPA 持续性提供程序的服务将其非临时字段持久保存到关系数据库(在 Java EE EJB 容器的内部或在简单 Java SE 应用程序中的 EJB 容器的外部)的 Java 对象。
使用 JPA 时,可以使用批注配置实体的 JPA 行为。批注是一种使用元数据修饰 Java 源代码的简单表达方法,它编译为相应的 Java 类文件,以便在运行时由 JPA 持续性提供程序解释以管理 JPA 行为。
例如,要将 Java 类指定为 JPA 实体,请使用 @Entity 批注,如下所示:
@Entity
public class Employee implements Serializable {
...
}
您可以有选择地使用批注来修饰实体类以覆盖默认值。这称作按异常进行配置 (configuration by exception)。
本参考广泛引用了 JSR-220 Enterprise JavaBean 版本 3.0 Java 持续性 API 规范,以按类别汇总批注信息(请参阅表 1-1),并解释了何时以及如何使用这些批注来自定义 JPA 行为,以满足应用程序的需要。
有关详细信息,请参阅:
分享到:
相关推荐
1. **实体批注**: - `@Entity`:标记一个Java类为JPA实体,意味着这个类的实例可以被持久化到数据库中。 - `@MappedSuperclass`:用于基类,其属性和关系会被继承到子类,但基类自身不会被映射为数据库表。 2. *...
**JPA批注详解** Java Persistence API(JPA)是Java平台上的一个标准,用于管理关系数据库中的数据。它提供了一种面向对象的方式来处理数据库操作,使得开发人员可以使用Java对象来代表数据库中的表和记录。JPA的...
总结,JPA批注参考涵盖了从基础的实体定义、主键策略、属性映射到复杂的关联关系、查询语言、存储过程调用、事务处理等多个方面,是Java开发中进行数据库操作的重要工具。通过合理运用批注,开发者能够高效地实现ORM...
### JPA批注详解 #### 一、概述 Java Persistence API (JPA) 是 Java 社区标准 JSR-317 的一部分,它提供了一种面向对象的方式来处理数据库操作,极大地方便了开发人员对数据库的操作。在 JPA 中,批注...
以下是JPA批注的一些主要类别和用法: 1. **实体(Entities)**: - `@Entity`:标记一个Java类为JPA实体,使其能够被用于JPA服务。实体类默认对应于数据库中的表,其字段对应于表中的列。 2. **数据库模式属性**...
JPA批注参考,大家在使用Hibernate annotation和EJB3中的entity时都可以拿来作参考
以下是一些重要的JPA批注及其用途: 1. **实体批注**: - `@Entity`:用于标记一个Java类为JPA实体,使其可用于JPA服务。如果不使用此批注,JPA提供程序会认为类是非持久化的。 2. **数据库模式属性批注**: - `...
### JPA批注参考 Java Persistence API (JPA) 是 Java 平台中用于处理对象关系映射(ORM)的标准接口。它简化了 Java 应用程序与关系型数据库之间的交互,使得开发者能够以面向对象的方式来操作数据库。本文将详细...
JPA批注参考,批注还是用的太少了,老记不集一。收集的,备用查询。
`JPA批注参考.chm`文件可能包含了关于JPA批注的详细文档,涵盖了上述所有注解的用法、示例以及最佳实践。通过阅读这份参考资料,开发者可以深入理解JPA批注的使用,提升Java应用的数据库操作效率,同时降低数据访问...
### JPA批注参考知识点详解 #### 一、概述 JPA (Java Persistence API) 是 Java 社区标准 JSR 317 的一部分,它为 Java 应用提供了对象关系映射(ORM)功能。JPA 允许开发者以声明的方式定义 Java 对象与关系型...
### JPA批注详解 #### 一、概述 Java Persistence API (JPA) 是 Java EE 5 和 EJB 3.0 的一部分,它极大简化了企业级 Java 应用程序中的数据持久化过程。JPA 提供了一种声明式的对象关系映射 (ORM) 方法,允许开发...
### JPA 批注参考-精心整理版 #### 按类别划分的JPA批注 JPA(Java Persistence API)是Java平台上的一个标准,用于处理对象与关系数据库之间的映射问题。JPA允许开发者使用注解的方式,将Java对象映射到数据库表...
### JPA注解详解 #### 一、JPA概述 Java Persistence API (JPA) 是 Java 企业版 5 (Java EE 5) 的一部分,它显著简化了 Enterprise Java Beans (EJB) 的持久化机制,并引入了一种声明式的对象关系映射 (ORM) 方法...
以下是一些主要的JPA批注及其用途: 1. **实体批注 (@Entity)**:用于标记一个Java类为JPA实体,这意味着这个类的实例可以被持久化到数据库。没有@Entity注解的类默认被认为是不可持久化的。 2. **数据库模式属性...
### JPA 批注参考详解 #### 一、概述 Java Persistence API (JPA) 是 Java EE 5 规范中的一个重要组成部分,它极大简化了 EJB 的持久化过程,并提供了一种对象关系映射机制,允许开发人员以声明式的方式来定义如何...
1. **@Entity** - 这是最基本的批注,用于标记一个类作为 JPA 实体。例如: ```java @Entity public class Employee implements Serializable { // 实体类的字段和方法 } ``` 2. **@Table** - 用于指定实体...
下面是一些主要的JPA批注及其用途: 1. **实体批注**: - `@Entity`:这个批注用于标识一个Java类为一个JPA实体,使得它可以参与到持久化操作中。如果没有这个批注,JPA提供者会认为类是非持久化的。 2. **数据库...
### JPA批注详解 Java持久化API (JPA) 是Java企业版5(JavaEE5) Enterprise JavaBean (EJB) 3.0规范的一部分,它的引入极大地简化了EJB的持久化过程,同时也提供了一种声明式的方法来定义Java对象如何被映射到关系...