`

JPA 批注参考 (转载)

    博客分类:
  • java
阅读更多

1 JPA 批注参考

版本 : 5/12/06

作为 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-1 按类别划分的 JPA 批注

类别 说明 批注

实体

默认情况下,JPA 持续性提供程序假设 Java 类是非持续类,并且仅当使用此批注对其进行修饰的情况下才可用于 JPA 服务。

使用此批注将普通的旧式 Java 对象 (POJO) 类指定为实体,以便可以将它用于 JPA 服务。

要将类用于 JPA 服务,必须将该类指定为 JPA 实体(使用此批注或 orm.xml 文件)。

@Entity


数据库模式属性

默认情况下,JPA 持续性提供程序假设实体名称对应于同名的数据库表,且实体的数据成员名称对应于同名的数据库列。

使用这些批注覆盖此默认行为,并微调对象模型与数据模型之间的关系。

@Table

@SecondaryTable

@SecondaryTables

@Column

@JoinColumn

@JoinColumns

@PrimaryKeyJoinColumn

@PrimaryKeyJoinColumns

@JoinTable

@UniqueConstraint


身份

默认情况下,JPA 持续性提供程序假设每个实体必须至少有一个用作主键的字段或属性。

使用这些批注指定以下项之一:

  • 一个 @Id

  • 多个 @Id 和一个 @IdClass

  • 一个 @EmbeddedId

还可以使用这些批注微调数据库维护实体身份的方式。

@Id

@IdClass

@EmbeddedId

@GeneratedValue

@SequenceGenerator

@TableGenerator


直接映射

默认情况下,JPA 持续性提供程序为大多数 Java 基元类型、基元类型的包装程序以及 enums 自动配置一个 Basic 映射。

使用这些批注微调数据库实现这些映射的方式。

@Basic

@Enumerated

@Temporal

@Lob

@Transient


关系映射

JPA 持续性提供程序要求您显式映射关系。

使用这些批注指定实体关系的类型和特征,以微调数据库实现这些关系的方式。

@OneToOne

@ManyToOne

@OneToMany

@ManyToMany

@MapKey

@OrderBy


组合

默认情况下,JPA 持续性提供程序假设每个实体均映射到它自己的表。

使用这些批注覆盖其他实体拥有的此种实体行为。

@Embeddable

@Embedded

@AttributeOverride

@AttributeOverrides

@AssociationOverride

@AssociationOverrides


继承

默认情况下,JPA 持续性提供程序假设所有持久字段均由一个实体类定义。

如果实体类继承了一个或多个超类中的某些或所有持续字段,则使用这些批注。

@Inheritance

@DiscriminatorColumn

@DiscriminatorValue

@MappedSuperclass

@AssociationOverride

@AssociationOverrides

@AttributeOverride

@AttributeOverrides


锁定

默认情况下,JPA 持续性提供程序假设应用程序负责数据一致性。

使用此批注启用 JPA 管理的乐观锁定(推荐使用)。

@Version


生命周期回调事件

默认情况下,JPA 持续性提供程序处理所有持续性操作。

如果您要在实体生命周期内随时调用自定义逻辑,请使用这些批注将实体方法与 JPA 生命周期事件关联。图 1-1 演示了这些生命周期事件之间的关系。

@PrePersist

@PostPersist

@PreRemove

@PostRemove

@PreUpdate

@PostUpdate

@PostLoad

@EntityListeners

@ExcludeDefaultListeners

@ExcludeSuperclassListeners


实体管理器

在使用 JPA 持续性提供程序的应用程序中,您可以使用 EntityManager 实例执行所有持续性操作(创建、读取、更新和删除)。

使用这些批注将实体与实体管理器关联并自定义实体管理器的环境。

@PersistenceUnit

@PersistenceUnits

@PersistenceContext

@PersistenceContexts

@PersistenceProperty


查询

在使用 JPA 持续性提供程序的应用程序中,可以使用实体管理器动态创建和执行查询,也可以预定义查询并在运行时按名称执行它们。

使用这些批注预定义查询并管理它们的结果集。

@NamedQuery

@NamedQueries

@NamedNativeQuery

@NamedNativeQueries

@QueryHint

@ColumnResult

@EntityResult

@FieldResult

@SqlResultSetMapping

@SqlResultSetMappings



<!---->

<!---->

@AssociationOverride

默认情况下,JPA 持续性提供程序自动假设子类继承超类中定义的持久属性及其关联映射。

如果继承的列定义对实体不正确(例如,如果继承的列名与已经存在的数据模型不兼容或作为数据库中的列名无效),请使用 @AssociationOverride 批注自定义从 @MappedSuperclass@Embeddable 继承的 @OneToOne@ManyToOne 映射,以更改与字段或属性关联的 @JoinColumn

如果有多个要进行的 @AssociationOverride 更改,则必须使用 @AssociationOverrides

要自定义基本映射以更改它的 @Column ,请使用 @AttributeOverride

表 1-4 列出了此批注的属性。有关更多详细信息,请参阅 。有关更多详细信息,请参阅 API

表 1-2 @AssociationOverride 属性

属性 必需 说明

joinColumns

必需


要指定映射到持久属性的连接列,请将 joinColums 设置为 JoinColumn 实例的数组(请参阅 @JoinColumn )。

映射类型将与可嵌套类或映射的超类中定义的类型相同。

name

必需


如果使用了基于属性的访问,则映射的为嵌入对象中的属性名称,如果使用了基于字段的访问,则映射的为字段名称。


<!---->

示例 1-4 显示了示例 1-5 中的实体扩展的 @MappedSuperclass示例 1-5 显示了如何在实体子类中使用 @AssociationOverride 覆盖 @MappedSuperclass Employee 中定义(默认情况下)的 @JoinColumn 以便关联到 Address

如果使用 @AssociationOverride ,则 Employee 表包含以下列:

  • ID

  • VERSION

  • ADDR_ID

  • WAGE

如果不使用 @AssociationOverride ,则 Employee 表包含以下列:

  • ID

  • VERSION

  • ADDRESS

  • WAGE

示例 1-1 @MappedSuperclass

@MappedSuperclass
public class Employee {
@Id protected Integer id;
@Version protected Integer version;
@ManyToOne protected Address address;
...
}
<!---->

示例 1-2 @AssociationOverride

@Entity@AssociationOverride(name="address", joinColumns=@JoinColumn(name="ADDR_ID"))public class PartTimeEmployee extends Employee {    @Column(name="WAGE")    protected Float hourlyWage;
...
}
<!---->
<!---->

<!---->

@AssociationOverrides

如果需要指定多个 @AssociationOverride ,则必需使用一个 @AssociationOverrides 批注指定所有关联覆盖。

表 1-5 列出了此批注的属性。有关更多详细信息,请参阅 。有关更多详细信息,请参阅 API

表 1-3 @AssociationOverrides 属性

属性 必需 说明

value

必需


要指定两个或更多覆盖,请将 value 设置为 AssociationOverride 实例的数组(请参阅 @AssociationOverride )。


<!---->

示例 1-6 显示了如何使用此批注指定两个关联覆盖。

示例 1-3 @AssociationOverrides

@Entity
@AssociationOverrides({
@AssociationOverride(name="address", joinColumn=@Column(name="ADDR_ID")),
@AssociationOverride(name="id", joinColumn=@Column(name="PTID"))
})
public class PartTimeEmployee extends Employee {
@Column(name="WAGE")
protected Float hourlyWage;
...
}
<!---->
<!---->

<!---->

@AttributeOverride

默认情况下,JPA 持续性提供程序自动假设子类继承超类中定义的持久属性及其基本映射。

如果针对实体继承的列定义不正确,请使用 @AttributeOverride 批注自定义一个从 @MappedSuperclass@Embeddable 继承的基本映射以更改与字段或属性关联的 @Column 。(例如,如果继承的列名与事先存在的数据模型不兼容,或者作为数据库中的列名无效)。

如果有多个要进行的 @AttributeOverride 更改,则必须使用 @AttributeOverrides

要自定义关联映射以更改它的 @JoinColumn ,请使用 @AssociationOverride

表 1-4 列出了此批注的属性。有关更多详细信息,请参阅 。有关更多详细信息,请参阅 API

表 1-4 @AttributeOverride 属性

属性 必需 说明

column

必需


映射到持久属性的 @Column 。映射类型将与可嵌套类或映射超类中定义的类型相同。

name

必需


如果使用了基于属性的访问,则映射的为嵌入对象中的属性名称,如果使用了基于字段的访问,则映射的为字段名称。


<!---->

示例 1-4 显示了示例 1-5 中的实体扩展的 @MappedSuperclass示例 1-5 显示了如何使用实体子类中的 @AttributeOverride 覆盖 @MappedSuperclass Employee 中定义(默认情况下)的 @Column ,以便基本映射到 Address

如果使用 @AttributeOverride ,则 Employee 表包含以下列:

  • ID

  • VERSION

  • ADDR _STRING

  • WAGE

如果不使用 @AttributeOverride ,则 Employee 表包含以下列:

  • ID

  • VERSION

  • ADDRESS

  • WAGE

示例 1-4 @MappedSuperclass

@MappedSuperclass
public class Employee {
@Id protected Integer id;
@Version protected Integer version;
protected String address;
...
}
<!---->

示例 1-5 @AttributeOverride

@Entity
@AttributeOverride(name="address", column=@Column(name="ADDR_STRING"))
public class PartTimeEmployee extends Employee {
@Column(name="WAGE")
protected Float hourlyWage;
...
}
<!---->
<!---->

<!---->

@AttributeOverrides

如果需要指定多个 @AttributeOverride ,则必需使用一个 @AttributeOverrides 批注指定所有属性覆盖。

表 1-5 列出了此批注的属性。有关更多详细信息,请参阅 。有关更多详细信息,请参阅 API

表 1-5 @AttributeOverrides 属性

属性 必需 说明

value

必需


要指定两个或更多属性覆盖,请将 value 设置为 AttributeOverride 实例的数组(请参阅 @AttributeOverride )。


<!---->

示例 1-6 显示了如何使用此批注指定两个属性覆盖。

示例 1-6 @AttributeOverrides

@Entity
@AttributeOverrides({
@AttributeOverride(name="address", column=@Column(name="ADDR_ID")),
@AttributeOverride(name="id", column=@Column(name="PTID"))
})
public class PartTimeEmployee extends Employee {
@Column(name="WAGE")
protected Float hourlyWage;
public PartTimeEmployee() {
...
}
public Float getHourlyWage() {
...
}
public void setHourlyWage(Float wage) {
...
}
}
<!---->
<!---->

<!---->

@Basic

默认情况下,JPA 持续性提供程序为大多数 Java 基元类型、基元类型的包装程序以及枚举自动配置一个 @Basic 映射。

使用 @Basic 批注:

  • 将获取类型配置为 LAZY

  • 如果空值不适合于应用程序,则将映射配置为禁止空值(针对非基元类型)

表 1-6 列出了此批注的属性。有关更多详细信息,请参阅 。有关更多详细信息,请参阅 API

表 1-6 @Basic 属性

属性 必需 说明

fetch

可选


默认值FetchType.EAGER

默认情况下,JPA 持续性提供程序使用获取类型 EAGER :这将要求持续性提供程序运行时必须迫切获取数据。

如果这不适合于应用程序或特定的持久字段,请将 fetch 设置为 FetchType.LAZY :这将提示持续性提供程序在首次访问数据(如果可以)时应不急于获取数据。

optional

可选


默认值true

默认情况下,JPA 持续性提供程序假设所有(非基元)字段和属性的值可以为空。

如果这并不适合于您的应用程序,请将 optional 设置为 false


<!---->

示例 1-7 显示了如何使用此批注为基本映射指定获取类型 LAZY

示例 1-7 @Basic

@Entity
public class Employee implements Serializable {
...
@Basic(fetch=LAZY)
protected String getName() {
return name;
}
...
}
<!---->
<!---->

<!---->

@Column

默认情况下,JPA 持续性提供程序假设每个实体的持久字段存储在其名称与持久字段的名称相匹配的数据库表列中。

使用 @Column 批注:

  • 将持久字段与其他名称关联(如果默认列名难于处理、与事先存在的数据模型不兼容或作为数据库中的列名无效)

  • 将持久字段与辅助表中的列关联(请参阅 @SecondaryTable

  • 微调数据库中列的特征

表 1-7 列出了此批注的属性。有关更多详细信息,请参阅 。有关更多详细信息,请参阅 API

表 1-7 @Column 属性

属性 必需 说明

columnDefinition

可选


默认值 :空 String

默认情况下,JPA 使用最少量 SQL 创建一个数据库表列。

如果需要使用更多指定选项创建的列,请将 columnDefinition 设置为在针对列生成 DDL 时希望 JPA 使用的 SQL 片断。

注意 :捕获批注中的 DDL 信息时,某些 JPA 持续性提供程序可以在生成数据库模式时使用此 DDL。例如,请参阅“用于 Java2DB 模式生成的 TopLink JPA 扩展”

insertable

可选


默认值true

默认情况下,JPA 持续性提供程序假设所有列始终包含在 SQL INSERT 语句中。

如果该列不应包含在这些语句中,请将 insertable 设置为 false

length

可选


默认值 : 255

默认情况下,JPA 持续性提供程序假设所有列在用于保存 String 值时的最大长度为 255 个字符。

如果该列不适合于您的应用程序或数据库,请将 length 设置为适合于您的数据库列的 int 值。

name

可选


默认值 :JPA 持续性提供程序假设实体的每个持久字段都存储在其名称与持久字段或属性的名称相匹配的数据库表列中。

要指定其他列名,请将 name 设置为所需的 String 列名。

nullable

可选


默认值true

默认情况下,JPA 持续性提供程序假设允许所有列包含空值。

如果不允许该列包含空值,请将 nullable 设置为 false

precision

可选


默认值 : 0.

默认情况下,JPA 持续性提供程序假设所有列在用于保存十进制(精确数字)值时的精度为 0。

如果该精度不适合于您的应用程序或数据库,请将 precision 设置为相应的 int 精度。

scale

可选


默认值 : 0.

默认情况下,JPA 持续性提供程序假设所有列在用于保存十进制(精确数字)值时的伸缩度为 0。

如果该伸缩度不适合于您的应用程序或数据库,请将 scale 设置为相应的 int 精度。

table

可选


默认值 :JPA 持续性提供程序假设实体的所有持久字段都存储到一个其名称为实体名称的数据库表中(请参阅 @Table )。

如果该列与辅助表关联(请参阅 @SecondaryTable ),请将 name 设置为相应辅助表名称的 String 名称,如示例 1-8 所示。

unique

可选


默认值false

默认情况下,JPA 持续性提供程序假设允许所有列包含重复值。

如果不允许该列包含重复值,请将 unique 设置为 true 。设置为 true 时,这相当于在表级别使用 @UniqueConstraint

updatable

可选


默认值true

默认情况下,JPA 持续性提供程序假设列始终包含在 SQL UPDATE 语句中。

如果该列不应包含在这些语句中,请将 updatable 设置为 false


<!---->

示例 1-8 显示了如何使用此批注使 JPA 将 empId 持久保存到辅助表 EMP_HR 中的列 EMP_NUM 。默认情况下,JPA 将 empName 持久保存到主表 Employee 中的列 empName

示例 1-8 @Column

@Entity
@SecondaryTable(name="EMP_HR")
public class Employee implements Serializable {
...
@Column(name="EMP_NUM", table="EMP_HR")
private Long empId;
private String empName;
...
}
<!---->
<!---->

<!---->

@ColumnResult

执行 @NamedNativeQuery 时,它可以返回实体(包括不同类型的实体)、标量值或实体和标量值的组合。

使用 @ColumnResult 批注返回标量值。标量类型由您在 @ColumnResult 中标识的列类型确定。

有关详细信息,另请参阅 @EntityResult@FieldResult@SqlResultSetMapping

表 1-8 列出了此批注的属性。有关更多详细信息,请参阅 。有关更多详细信息,请参阅 API

表 1-8 @ColumnResult 属性

属性 必需 说明

name

必需


在原生 SQL 查询的 SELECT 语句中将 name 设置为列名的 String 等效形式。如果在 SELECT 中使用列别名(AS 语句),则将 name 设置为列别名。


<!---->

示例 1-9 显示了如何使用此批注将 Item (请参阅示例 1-10 )标量 name 包含在结果列表(请参阅示例 1-11 )中。在该示例中,结果列表将为 Object 数组的 List ,如:{[Order, "Shoes"], [Order, "Socks"], ...}

示例 1-9 使用 @ColumnResult 的 Order 实体

@SqlResultSetMapping(
name="OrderResults",
entities={
@EntityResult(
entityClass=Order.class,
fields={
@FieldResult(name="id",       column="order_id"),
@FieldResult(name="quantity", column="order_quantity"),
@FieldResult(name="item",     column="order_item")
}
)
},
columns={
@ColumnResult(
name="item_name"
)
}
)
@Entity
public class Order {
@Id
protected int id;
protected long quantity;
protected Item item;
...
}
<!---->

示例 1-10 Item 实体

@Entity
public class Item {
@Id
protected int id;
protected String name;
...
}
<!---->

示例 1-11 结合使用 @SqlResultSetMapping 与 @ColumnResult 的原生查询

Query q = entityManager.createNativeQuery(
"SELECT o.id       AS order_id, " +
"o.quantity AS order_quantity, " +
"o.item     AS order_item, " +
"i.name     AS item_name, " +
"FROM Order o, Item i " +
"WHERE (order_quantity > 25) AND (order_item = i.id)",
"OrderResults"
);
List resultList = q.getResultList();
// List of Object arrays:{[Order, "Shoes"], [Order, "Socks"], ...}
<!---->
<!---->

<!---->

@DiscriminatorColumn

默认情况下,当 @Inheritance 属性策略为 InheritanceType.SINGLE_TABLEJOINED 时,JPA 持续性提供程序将创建一个名为 DTYPE 的标识符列以区分继承层次中的类。

使用 @DiscriminatorColumn 批注:

  • 指定一个标识符列名(如果数据模型中的列名不是默认列名 DTYPE )。

  • 指定一个适用于应用程序或事先存在的数据模型的标识符列长度

  • 微调数据库中的标识符列的特征

表 1-9 列出了此批注的属性。有关更多详细信息,请参阅 。有关更多详细信息,请参阅 API

表 1-9 @DiscriminatorColumn 属性

属性 必需 说明

columnDefinition

可选


默认值 :空 String

默认情况下,JPA 持续性提供程序使用最少量 SQL 创建一个数据库表列。

如果需要使用更多指定选项创建的列,请将 columnDefinition 设置为在针对列生成 DDL 时希望 JPA 使用的 SQL 片断。

discriminatorType

可选


默认值DiscriminatorType.STRING

默认情况下,JPA 持续性提供程序假设标识符类型为 String

如果要使用其他类型,请将 discriminatorType 设置为 DiscriminatorType.CHARDiscriminatorType.INTEGER

您的 @DiscriminatorValue 必须符合此类型。

length

可选


默认值 : 31

默认情况下,JPA 持续性提供程序假设标识符列在用于保存 String 值时的最大长度为 255 个字符。

如果该列不适合于您的应用程序或数据库,请将 length 设置为适合于您的数据库列的 int 值。

您的 @DiscriminatorValue 必须符合此长度。

name

可选


默认值 :JPA 持续性提供程序假设标识符列名为“DTYPE ”。

要指定其他列名,请将 name 设置为所需的 String 列名。


<!---->

示例 1-12 显示了如何使用此批注指定一个名为 DISC 、类型为 STRING 、长度为 20 的标识符列。在本示例中,该类的 @DiscriminatorValue 指定为 CUST示例 1-13 中的子类将它自己的 @DiscriminatorValue 指定为 VIP 。在 CustomerValuedCustomer 中,@DiscriminatorValue 的值必须可以转换为由 @DiscriminatorColumn 属性 discriminatorType 指定的类型,并且必须符合 @DiscriminatorColumn 属性 length

示例 1-12 @DiscriminatorColumn 和 @DiscriminatorValue — 根类

@Entity
@Table(name="CUST")
@Inheritance(strategy=SINGLE_TABLE)
@DiscriminatorColumn(name="DISC", discriminatorType=STRING, length=20)
@DiscriminatorValue(value-"CUST")
public class Customer {
...
}
<!---->

示例 1-13 @DiscriminatorValue — 子类

@Entity
@DiscriminatorValue(value="VIP")
public class ValuedCustomer extends Customer {
...
}
<!---->
<!---->

相关推荐

    java JPA 批注参考

    JPA通过使用批注(Annotations)来配置实体的行为,使得无需编写XML配置文件即可实现ORM功能。批注是元数据的一种形式,它们直接嵌入到Java源代码中,并在运行时由JPA提供程序解析以执行相应的操作。 1. **实体批注...

    JPA 批注 参考

    总结,JPA批注参考涵盖了从基础的实体定义、主键策略、属性映射到复杂的关联关系、查询语言、存储过程调用、事务处理等多个方面,是Java开发中进行数据库操作的重要工具。通过合理运用批注,开发者能够高效地实现ORM...

    1_JPA_批注参考.

    **JPA批注详解** Java Persistence API(JPA)是Java平台上的一个标准,用于管理关系数据库中的数据。它提供了一种面向对象的方式来处理数据库操作,使得开发人员可以使用Java对象来代表数据库中的表和记录。JPA的...

    JPA批注参考.JPA批注参考.

    ### JPA批注详解 #### 一、概述 Java Persistence API (JPA) 是 Java 社区标准 JSR-317 的一部分,它提供了一种面向对象的方式来处理数据库操作,极大地方便了开发人员对数据库的操作。在 JPA 中,批注...

    JPA批注参考.htm

    JPA批注参考,大家在使用Hibernate annotation和EJB3中的entity时都可以拿来作参考

    JPA 批注参考Java JPA

    JPA的核心特性是使用批注(annotations)来配置实体的行为。批注是一种元数据,直接在Java源代码中添加,编译后在运行时被JPA持久化提供商解释以管理对象关系映射。 以下是JPA批注的一些主要类别和用法: 1. **...

    JPA详细文档(JPA 批注参考)

    批注是JPA实现ORM的关键,它允许在Java源代码中添加元数据,这些元数据在运行时会被JPA持久化提供程序解析以管理对象的持久化行为。 以下是一些重要的JPA批注及其用途: 1. **实体批注**: - `@Entity`:用于标记...

    JPA批注参考(主要介绍JPA中的相关注解)

    ### JPA批注参考 Java Persistence API (JPA) 是 Java 平台中用于处理对象关系映射(ORM)的标准接口。它简化了 Java 应用程序与关系型数据库之间的交互,使得开发者能够以面向对象的方式来操作数据库。本文将详细...

    JPA批注参考

    JPA批注参考,批注还是用的太少了,老记不集一。收集的,备用查询。

    Java持久化参考资料,JPA批注

    `JPA批注参考.chm`文件可能包含了关于JPA批注的详细文档,涵盖了上述所有注解的用法、示例以及最佳实践。通过阅读这份参考资料,开发者可以深入理解JPA批注的使用,提升Java应用的数据库操作效率,同时降低数据访问...

    JPA 批注参考(全部).pdf

    ### JPA批注详解 #### 一、概述 Java Persistence API (JPA) 是 Java EE 5 和 EJB 3.0 的一部分,它极大简化了企业级 Java 应用程序中的数据持久化过程。JPA 提供了一种声明式的对象关系映射 (ORM) 方法,允许开发...

    JPA_批注参考

    ### JPA批注参考知识点详解 #### 一、概述 JPA (Java Persistence API) 是 Java 社区标准 JSR 317 的一部分,它为 Java 应用提供了对象关系映射(ORM)功能。JPA 允许开发者以声明的方式定义 Java 对象与关系型...

    JPA 批注参考-精心整理版

    ### JPA 批注参考-精心整理版 #### 按类别划分的JPA批注 JPA(Java Persistence API)是Java平台上的一个标准,用于处理对象与关系数据库之间的映射问题。JPA允许开发者使用注解的方式,将Java对象映射到数据库表...

    JPA 批注参考.pdf

    ### JPA注解详解 #### 一、JPA概述 Java Persistence API (JPA) 是 Java 企业版 5 (Java EE 5) 的一部分,它显著简化了 Enterprise Java Beans (EJB) 的持久化机制,并引入了一种声明式的对象关系映射 (ORM) 方法...

    JPA 批注参考

    ### JPA 批注参考详解 #### 一、概述 Java Persistence API (JPA) 是 Java EE 5 规范中的一个重要组成部分,它极大简化了 EJB 的持久化过程,并提供了一种对象关系映射机制,允许开发人员以声明式的方式来定义如何...

    JPA 批注参考 EJB3.0实体Bean注解详细解析

    ### Java Persistence ...JPA 通过使用批注来简化了实体 Bean 的配置和使用,使得开发者可以更专注于业务逻辑而非底层的数据库交互细节。通过对 JPA 批注的理解和合理运用,可以有效地提高应用程序的开发效率和维护性。

    JPA 批注总结参考

    以下是一些主要的JPA批注及其用途: 1. **实体批注 (@Entity)**:用于标记一个Java类为JPA实体,这意味着这个类的实例可以被持久化到数据库。没有@Entity注解的类默认被认为是不可持久化的。 2. **数据库模式属性...

    jpa 批注参考 doc 格式 提供了一个对象关系映射方法

    批注是JPA的核心机制,它们提供了一种元数据的方式来修饰Java源代码,使得JPA持久化提供者在运行时能够解析并管理对象的持久性行为。下面是一些主要的JPA批注及其用途: 1. **实体批注**: - `@Entity`:这个批注...

    JPA教程,包括TOPLink JPA,Hibernate JPA,Open Jpa,jpa批注

    通过学习和理解这些JPA实现及其批注,开发者可以有效地利用JPA来简化数据库操作,提高代码的可读性和可维护性,减少数据库相关的耦合。在实际开发中,根据项目的具体需求,可以选择适合的JPA实现,例如,对于性能...

    jpa批注参考

    ### JPA批注详解 Java持久化API (JPA) 是Java企业版5(JavaEE5) Enterprise JavaBean (EJB) 3.0规范的一部分,它的引入极大地简化了EJB的持久化过程,同时也提供了一种声明式的方法来定义Java对象如何被映射到关系...

Global site tag (gtag.js) - Google Analytics