mysql jpa 批注 视图_JPA 批注参考

在 JPA 之前,Java EE 应用程序将持续类表示为容器管理的实体 bean。使用 JPA,您可以将任何普通的旧式 Java 对象 (POJO) 类指定为 JPA 实体:一个应使用 JPA 持续性提供程序的服务将其非临时字段持久保存到关系数据库(在 Java EE EJB 容器的内部或在简单 Java SE应用程序中的 EJB 容器的外部)的 Java 对象。

使用 JPA 时,可以使用批注配置实体的 JPA 行为。批注是一种使用元数据修饰 Java 源代码的简单表达方法,它编译为相应的 Java 类文件,以便在运行时由 JPA 持续性提供程序解释以管理 JPA 行为。

·批注索引·完整的 JPA 批注 Javadoc按类别划分的 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

表 1-2 @AssociationOverride 属性

属性 必需 说明

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

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

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

表 1-3 @AssociationOverrides 属性

属性 必需 说明

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

表 1-4 @AttributeOverride 属性

属性 必需 说明

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

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

表 1-5 @AttributeOverrides 属性

属性 必需 说明

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

表 1-6 @Basic 属性 属性 必需 说明

fetch wps_clip_image_10523_thumb.png 默认值:FetchType.EAGER。默认情况下,JPA 持续性提供程序使用获取类型 EAGER:这将要求持续性提供程序运行时必须迫切获取数据。如果这不适合于应用程序或特定的持久字段,请将fetch设置为FetchType.LAZY:这将提示持续性提供程序在首次访问数据(如果可以)时应不急于获取数据。

optional wps_clip_image_27860_thumb.png 默认值:true。

默认情况下,JPA 持续性提供程序假设所有(非基元)字段和属性的值可以为空。如果这并不适合于您的应用程序,请将optional设置为false。

表 1-7 @Column 属性

属性 必需 说明

columnDefinition wps_clip_image_10960_thumb.png 默认值:空String。

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

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

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

insertable wps_clip_image_26355_thumb.png 默认值:true。

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

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

length wps_clip_image_23332_thumb.png 默认值: 255

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

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

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

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

nullable wps_clip_image_18352_thumb.png 默认值:true。

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

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

precision wps_clip_image_4505_thumb.png 默认值: 0.

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

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

scale wps_clip_image_17821_thumb.png 默认值: 0.

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

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

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

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

unique wps_clip_image_8780_thumb.png 默认值:false。

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

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

updatable wps_clip_image_26139_thumb.png 默认值:true。

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

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

表 1-8 @ColumnResult 属性 属性 必需 说明

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

表 1-9 @DiscriminatorColumn 属性 属性 必需 说明

columnDefinition wps_clip_image_11555_thumb.png 默认值:空String。

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

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

discriminatorType wps_clip_image_16484_thumb.png 默认值:DiscriminatorType.STRING。

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

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

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

length wps_clip_image_30579_thumb.png 默认值: 31

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

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

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

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

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

表 1-10 @DiscriminatorValue 属性 属性 必需 说明

value wps_clip_image_11718_thumb.png 将value设置为符合@DiscriminatorColumn 属性 discriminatorType和length的标识符值的String等效形式。

表 1-11 @Entity 属性 属性 必需 说明

name wps_clip_image_11943_thumb.png 默认值:JPA 持续性提供程序假设实体名称是实体类的名称。在示例 1-20 中,默认 name为“Employee”。

如果实体类名难于处理、是一个保留字、与事先存在的数据模型不兼容或作为数据库中的表名无效,请将name设置为其他String值。

表 1-12 @EntityListeners 属性

属性 必需 说明

value wps_clip_image_12136_thumb.png 要为@Entity 或 @MappedSuperclass 指定实体监听程序类的列表,请将 value设置为实体监听程序类的Class数组。

表 1-13 @EntityResult 属性 属性 必需 说明

entityClass wps_clip_image_12642_thumb.png 将entityClass设置为由SELECT语句返回的实体的Class。

discriminatorColumn wps_clip_image_23992_thumb.png 默认值:空String。

默认情况下,JPA 持续性提供程序假设SELECT语句中不包含标识符列(请参阅@Inheritance)。

如果在SELECT语句中使用标识符列,请将discriminatorColumn设置为所使用的String列名。

fields wps_clip_image_15572_thumb.png 默认值:空FieldResult数组。

默认情况下,JPA 持续性提供程序假设SELECT语句包含与返回的实体的所有字段或属性相对应的所有列,且SELECT语句中的列名对应于字段或属性名(未使用AS语句)。

如果 SELECT 语句只包含某些与返回的实体的字段或属性相对应的列,或 SELECT 语句中的列名并不对应于字段或属性名(使用了AS语句),请将fields设置为@FieldResult 的数组,SELECT语句中的每一列一个@FieldResult。

表 1-14 @Enumerated 属性属性 必需 说明

value wps_clip_image_13766_thumb.png 默认值:EnumType.ORDINAL。

默认情况下,JPA 持续性提供程序假设对于映射到枚举常量的属性或字段,应持久保存序数值。在示例 1-28 中,当持久保存 Employee时,EmployeeStatus的序数值将写入数据库。

如果需要持久保存的枚举常量的 String 值,请将value设置为EnumType.STRING。

表 1-15 @FieldResult 属性

属性 必需 说明

column wps_clip_image_14004_thumb.png 将column设置为SELECT语句中使用的列的String名称。如果在SELECT中使用列别名(AS语句),请将column设置为列别名。

name wps_clip_image_16861_thumb.png 将name设置为实体的字段或属性名(作为String),该名称对应于column属性指定的列名。

表 1-16 @GeneratedValue 属性

属性 必需 说明

generator wps_clip_image_14331_thumb.png 默认值:JPA 持续性提供程序为它选择的主键生成器分配一个名称。

如果该名称难于处理、是一个保留字、与事先存在的数据模型不兼容或作为数据库中的主键生成器名称无效,则将generator设置为要使用的String生成器名称。

strategy wps_clip_image_10358_thumb.png 默认值:GenerationType.AUTO。

默认情况下,JPA 持续性提供程序选择最适合于基础数据库的主键生成器类型。

如果您感觉另一个生成器类型更适合于数据库或应用程序,请将strategy设置为所需的GeneratorType:

·IDENTITY— 指定持续性提供程序使用数据库身份列

·AUTO— 指定持续性提供程序应选择一个最适合于基础数据库的主键生成器。

·SEQUENCE— 指定持续性提供程序使用数据库序列(请参阅@SequenceGenerator)

·TABLE— 指定持续性提供程序为使用基础数据库表的实体分配主键以确保唯一性(请参阅@TableGenerator)

表 1-17 @IdClass 属性 属性 必需 说明

value wps_clip_image_15647_thumb.png 要指定复合主键类,请将value设置为所需的Class(请参阅@AttributeOverride)。

表 1-18 @Inheritance 属性

属性 必需 说明

strategy wps_clip_image_16087_thumb1.png 默认值:InheritanceType.SINGLE_TABLE。

默认情况下,JPA 持续性提供程序假设层次中的所有类均映射到一个由表的标识符列(请参阅@DiscriminatorColumn)中的标识符值(请参阅 @DiscriminatorValue)区分的表。

如果这并不适合于应用程序,或者如果必须匹配现有的数据模型,请将strategy设置为所需的InheritanceType:

·SINGLE_TABLEhref="#sthref28" Foot?1? — 层次中的所有类均映射到一个表。该表有一个标识符列(请参阅 @DiscriminatorColumn),它的值(请参阅 @DiscriminatorValue)标识由行表示的实例所属的特定子类。

·TABLE_PER_CLASS— 每个类均映射到单独的表。该类的所有属性(包括继承的属性)映射到该类的表列。

·JOINED— 类层次的根由一个表表示,而每个子类由单独的表表示。每个子类表只包含特定于该子类的那些字段(而非从其超类继承的字段)和主键列,这些主键列用作超类表主键的外键。

表 1-19 @JoinColumn 属性属性 必需 说明

columnDefinition wps_clip_image_20385.png 默认值:空String。

JPA 使用最少量 SQL 创建一个数据库表列。

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

insertable wps_clip_image_14959.png 默认值:true。

默认情况下,JPA 持续性提供程序假设它可以插入到所有表列中。

如果该列为只读,请将insertable设置为false。

name wps_clip_image_2499.png 默认值:如果使用一个连接列,则 JPA 持续性提供程序假设外键列的名称是以下名称的连接:

·引用关系属性的名称 +“_”+ 被引用的主键列的名称。

·引用实体的字段名称 +“_”+ 被引用的主键列的名称。

如果实体中没有这样的引用关系属性或字段(请参阅@JoinTable),则连接列名称格式化为以下名称的连接:实体名称 +“_”+ 被引用的主键列的名称。

这是外键列的名称。如果连接针对“一对一”或“多对一”实体关系,则该列位于源实体的表中。如果连接针对“多对多”实体关系,则该列位于连接表(请参阅@JoinTable)中。

如果连接列名难于处理、是一个保留字、与预先存在的数据模型不兼容或作为数据库中的列名无效,请将name设置为所需的String列名。

nullable wps_clip_image_32444.png 默认值:true。

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

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

referencedColumnName wps_clip_image_102.png 默认值:如果使用一个连接列,则 JPA 持续性提供程序假设在实体关系中,被引用的列名是被引用的主键列的名称。

如果在连接表(请参阅@JoinTable)中使用,则被引用的键列位于拥有实体(如果连接是反向连接定义的一部分,则为反向实体)的实体表中。

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

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

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

unique wps_clip_image_21922.png 默认值:false。

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

如果不允许该列包含重复值,请将unique设置为true。

updatable wps_clip_image_8342.png 默认值:true。

默认情况下,JPA 持续性提供程序假设它可以更新所有表列。

如果该列为只读,则将updatable设置为false

表 1-20 @JoinColumns 属性

属性 必需 说明

value wps_clip_image_20597.png 要指定两个或更多连接列,请将value设置为JoinColumn实例数组(请参阅@JoinColumn)。

表 1-21 @JoinTable 属性属性 必需 说明

catalog wps_clip_image_20865.png 默认值:空String。

默认情况下,JPA 使用任何适用于数据库的默认目录。

如果默认目录不适合于应用程序,请将catalog设置为要使用的String目录名。

inverseJoinColumns wps_clip_image_22111.png 默认值:JoinColumn的空数组。

默认情况下,JPA 持续性提供程序假设关联的被拥有方(或另一方)上有一个连接列:被拥有实体的主键列。JPA 通过连接被拥有实体的名称 +“_”+ 被引用的主键列的名称来命名该列。

如果这样的列名难于处理、是一个保留字、与预先存在的数据模型不兼容,或者如果要指定多个连接列,则将joinColumns设置为JoinColumn(请参阅@JoinColumn)的一个或多个实例。

joinColumns wps_clip_image_7092.png 默认值:JoinColumn的空数组。

默认情况下,JPA 持续性提供程序假设:拥有实体的每个主键列都有一个连接列。该持续性提供程序通过连接拥有实体的名称+“_”+ 被引用主键列的名称来命名这些列。

如果这样的列名难于处理、是一个保留字、与预先存在的数据模型不兼容,或者如果要指定多个连接列,则将joinColumns设置为JoinColumn(请参阅@JoinColumn)的一个或多个实例。

name wps_clip_image_30807.png 默认值:JPA 持续性提供程序通过使用下划线连接关联主表(拥有方优先)的表名来命名连接表。

如果这样的连接表难于处理、是一个保留字或与预先存在的数据模型不兼容,则将name设置为相应的连接表名。在示例 1-45 中,JPA 使用名为 EJB_PROJ_EMP的连接表。

schema wps_clip_image_9017.png 默认值:空String。

默认情况下,JPA 使用任何适用于数据库的默认模式。

如果默认模式不适合于应用程序,则将schema设置为要使用的String模式名。

uniqueConstraints wps_clip_image_19493.png 默认值:UniqueConstraint的空数组。

默认情况下,JPA 持续性提供程序假设连接表中的任何列均没有唯一约束。

如果唯一约束应用于该表中的一列或多列,则将uniqueContraints设置为一个或多个UniqueConstraint实例的数组。有关详细信息,请参阅@UniqueConstraint。

表 1-22 @ManyToMany 属性

属性 必需 说明

cascade wps_clip_image_21293.png 默认值:CascadeType的空数组。

默认情况下,JPA 不会将任何持续性操作层叠到关联的目标。

如果希望某些或所有持续性操作层叠到关联的目标,请将cascade设置为一个或多个CascadeType实例,其中包括:

·ALL— 针对拥有实体执行的任何持续性操作均层叠到关联的目标。

·MERGE— 如果合并了拥有实体,则将 merge 层叠到关联的目标。

·;PERSIST— 如果持久保存拥有实体,则将 persist 层叠到关联的目标。

·REFRESH— 如果刷新了拥有实体,则 refresh 为关联的层叠目标。

·REMOVE— 如果删除了拥有实体,则还删除关联的目标。

fetch wps_clip_image_21128.png 默认值:FetchType.EAGER。

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

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

mappedBy wps_clip_image_20771.png 默认值:如果关系是单向的,则 JPA 持续性提供程序确定拥有该关系的字段。

如果关系是双向的,则将关联的反向(非拥有)一方上的mappedBy属性设置为拥有该关系的字段或属性的名称(如示例 1-48 所示)。

targetEntity wps_clip_image_4605.png 默认值:使用一般参数定义的Collection的参数化类型。

默认情况下,如果使用通过一般参数定义的Collection,则持续性提供程序将从被引用的对象类型推断出关联的目标实体。

如果Collection不使用一般参数,则必须指定作为关联目标的实体类:将关联拥有方上的targetEntity元素设置为作为关系目标的实体的Class。

表 1-23 @ManyToOne 属性

属性 必需 说明

cascade wps_clip_image_21606.png 默认值:CascadeType的空数组。

默认情况下,JPA 不会将任何持续性操作层叠到关联的目标。

如果希望某些或所有持续性操作层叠到关联的目标,请将cascade设置为一个或多个CascadeType实例,其中包括:

·ALL— 针对拥有实体执行的任何持续性操作均层叠到关联的目标。

·MERGE— 如果合并了拥有实体,则将 merge 层叠到关联的目标。

·;PERSIST— 如果持久保存拥有实体,则将 persist 层叠到关联的目标。

·REFRESH— 如果刷新了拥有实体,则 refresh 为关联的层叠目标。

·REMOVE— 如果删除了拥有实体,则还删除关联的目标。

fetch wps_clip_image_4399.png 默认值:FetchType.EAGER。

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

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

optional wps_clip_image_31795.png 默认值:true。

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

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

targetEntity wps_clip_image_20923.png 默认值:JPA 持续性提供程序从被引用的对象类型推断出关联的目标实体

如果持续性提供程序无法推断出目标实体的类型,则将关联拥有方上的targetEntity元素设置为作为关系目标的实体的Class。

表 1-24 @MapKey 属性

属性 必需 说明

name wps_clip_image_21982.png 默认值:默认情况下,JPA 持续性提供程序将关联实体的主键作为Map键,以用于映射到非复合主键或复合主键(批注为@IdClass)的 java.util.Map的属性或字段。

如果要将某个其他字段或属性用作Map键,请将name设置为要使用的关联实体的String字段或属性名。

表 1-25 @NamedNativeQueries 属性 属性 必需 说明

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

表 1-26 @NamedNativeQuery 属性 属性 必需 说明

query wps_clip_image_22485.png 要指定查询,请将query设置为 SQL 查询(作为String)。

有关原生 SQL 查询语言的详细信息,请参阅数据库文档。

hints wps_clip_image_12137.png 默认值:空QueryHint数组。

默认情况下,JPA 持续性提供程序假设 SQL 查询应完全按照query属性提供的方式执行。

要微调查询的执行,可以选择将hints设置为一个QueryHint数组(请参阅@QueryHint)。在执行时,EntityManager将向基础数据库传递提示。

name wps_clip_image_20361.png 要指定查询名称,请将name设置为所需的String名称。

这是您在运行时调用查询所使用的名称(请参阅示例 1-60)。

resultClass wps_clip_image_5891.png 默认值:JPA 持续性提供程序假设结果类是关联实体的Class。

要指定结果类,请将resultClass设置为所需的Class。

resultSetMapping wps_clip_image_13238.png 默认值:JPA 持续性提供程序假设原生 SQL 查询中的SELECT语句:返回一个类型的实体;包括与返回的实体的所有字段或属性相对应的所有列;并使用与字段或属性名称(未使用AS语句)相对应的列名。

要控制 JPA 持续性提供程序如何将 JDBC 结果集映射到实体字段或属性以及标量,请通过将resultSetMapping设置为所需的@SqlResultSetMapping 的 String名称来指定结果集映射。

表 1-27 @NamedQueries 属性 属性 必需 说明

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

表 1-28 @NamedQuery 属性 属性 必需 说明

query wps_clip_image_22834.png 要指定查询,请将query设置为 JPA 查询语言(作为String)。

有关 JPA 查询语言的详细信息,请参阅JSR-000220 Enterprise JavaBeans v.3.0 规范的第 4 章。

hints wps_clip_image_15336.png 默认值:空QueryHint数组。

默认情况下,JPA 持续性提供程序假设 SQL 查询应完全按照query属性提供的方式执行,而不管基础数据库如何。

如果您知道基础数据库在运行时的状态,则要微调查询的执行,可以选择将hints设置为QueryHint数组(请参阅@QueryHint)。在执行时,EntityManager将向基础数据库传递提示。

name wps_clip_image_31283.png 要指定查询名称,请将name设置为查询名称(作为String)。

这是您在运行时调用查询所使用的名称(请参阅示例 1-60)。

表 1-29 @OneToMany 属性

属性 必需 说明

cascade wps_clip_image_22997.png 默认值:CascadeType的空数组。

默认情况下,JPA 不会将任何持续性操作层叠到关联的目标。

如果希望某些或所有持续性操作层叠到关联的目标,请将cascade设置为一个或多个CascadeType实例,其中包括:

·ALL- 针对拥有实体执行的任何持续性操作均层叠到关联的目标。

·MERGE- 如果合并了拥有实体,则将 merge 层叠到关联的目标。

·;PERSIST- 如果持久保存拥有实体,则将 persist 层叠到关联的目标。

·REFRESH- 如果刷新了拥有实体,则 refresh 为关联的层叠目标。

·REMOVE- 如果删除了拥有实体,则还删除关联的目标。

fetch wps_clip_image_28468.png 默认值:FetchType.EAGER。

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

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

mappedBy wps_clip_image_6988.png 默认值:如果关系是单向的,则该持续性提供程序确定拥有该关系的字段。

如果关系是双向的,则将关联相反(非拥有)方上的mappedBy元素设置为拥有此关系的字段或属性的名称(如示例 1-62 所示)。

targetEntity wps_clip_image_15511.png 默认值:使用一般参数定义的Collection的参数化类型。

默认情况下,如果使用通过一般参数定义的 Collection,则持续性提供程序从被引用的对象类型推断出关联的目标实体。

如果Collection不使用一般参数,则必须指定作为关联目标的实体类:将关联拥有方上的targetEntity元素设置为作为关系目标的实体的Class。

表 1-30 @OneToOne 属性 属性 必需 说明

cascade wps_clip_image_23184.png 默认值:空CascadeType数组。

默认情况下,JPA 不会将任何持续性操作层叠到关联的目标。

如果希望某些或所有持续性操作层叠到关联的目标,请将cascade设置为一个或多个CascadeType实例,其中包括:

·ALL- 针对拥有实体执行的任何持续性操作均层叠到关联的目标。

·MERGE- 如果合并了拥有实体,则将 merge 层叠到关联的目标。

·;PERSIST- 如果持久保存拥有实体,则将 persist 层叠到关联的目标。

·REFRESH- 如果刷新了拥有实体,则 refresh 为关联的层叠目标。

·REMOVE- 如果删除了拥有实体,则还删除关联的目标。

fetch wps_clip_image_18536.png 默认值:FetchType.EAGER。

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

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

mappedBy wps_clip_image_9438.png 默认值:JPA 持续性提供程序从被引用的对象类型推断出关联的目标实体

如果持续性提供程序无法推断关联的目标实体,则将关联的相反(非拥有)方上的mappedBy元素设置为拥有此关系的字段或属性的String名称(如示例 1-64)所示。

optional wps_clip_image_10864.png 默认值:true。

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

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

targetEntity wps_clip_image_25101.png 默认值:JPA 持续性提供程序从被引用的对象类型推断出关联的目标实体

如果持续性提供程序无法推断出目标实体的类型,则将关联的拥有方上的targetEntity元素设置为作为关系目标的实体的Class。

表 1-31 @OrderBy 属性

属性 必需 说明

value wps_clip_image_23386.png 默认值:JPA 持续性提供程序按关联实体的主键以升序顺序检索Collection关联的成员。

如果要按某些其他字段或属性排序并指定了不同的排序,则将value设置为以下元素的逗号分隔列表:"property-or-field-nameASC|DESC”(请参阅示例 1-65)。

表 1-32 @PersistenceContext 属性

属性 必需 说明

name wps_clip_image_23608.png 默认值:JPA 持续性提供程序检索默认实体管理器。

如果要注入或查找特定实体管理器,请将name设置为要使用的实体管理器的String名称。

对于相关性注入,不需要name。

对于 JNDI 查找,必须将name设置为要在环境引用上下文中访问实体管理器所使用的名称。

properties wps_clip_image_6804.png 默认值:JPA 持续性提供程序假设实体管理器将使用默认属性。

如果要配置包含供应商特定属性的 JPA 持续性提供程序属性(例如,请参阅“TopLink JPA Persistence.xml 文件扩展”),请将 properties设置为@PersistenceProperty 实例数组。

type wps_clip_image_5252.png 默认值:;PersistenceContextType.TRANSACTION。

默认情况下,JPA 持续性提供程序假设实体管理器是容器管理的,并且它们的持续性上下文的生命周期伸缩到一个事务:即,持续性上下文在事务启动时开始存在,并在事务提交时停止存在。

在以下条件下,将type设置为;PersistenceContextType.EXTENDED:

·您的持续性上下文是应用程序管理的

·您希望扩展的持续性上下文在EntityManager实例从创建一直到关闭期间存在

·您希望实体管理器在事务提交后维护对实体对象的引用

·您希望调用EntityManager方法persist、remove、merge和refresh,而不论事务是否处于活动状态

unitName wps_clip_image_26134.png 默认值:JPA 持续性提供程序检索默认持续性单元的默认实体管理器。

如果要注入或查找与特定持续性单元关联的实体管理器,则将unitName设置为所需的String持续性单元名称。或者,如果要指定EntityManagerFactory和持续性单元,则可以使用@PersistenceUnit。

对于相关性注入,不需要unitName。

对于 JNDI 查找,如果指定unitName,则由name访问的实体管理器必须与此持续性单元关联。

表 1-33 @PersistenceContexts 属性

属性 必需 说明

value wps_clip_image_23768.png 要指定两个或更多持续性上下文,请将value设置为;PersistenceContext实例数组(请参阅@PersistenceContext)。

表 1-34 @PersistenceProperty 属性

属性 必需 说明

name wps_clip_image_23869.png 要指定持续性属性的名称,请将name设置为String属性名。

有关持续性属性的详细信息,请参阅 JPA 持续性提供程序文档。

value wps_clip_image_14709.png 要指定持续性属性的值,请将value设置为所需的String属性值。

有关持续性属性值的详细信息,请参阅 JPA 持续性提供程序文档。

表 1-35 @PersistenceUnit 属性 属性 必需 说明

name wps_clip_image_23954.png 默认值:JPA 持续性提供程序从默认EntityManagerFactory中获取它的EntityManager实例。

如果希望 JPA 持续性提供程序在注入或查找实体管理器时使用特定的EntityManagerFactory,请将name设置为所需的实体管理器工厂的String名称。

对于相关性注入,不需要name。

对于 JNDI 查找,必须将name设置为要在环境引用上下文中访问实体管理器所使用的名称。

unitName wps_clip_image_32024.png 默认值:JPA 持续性提供程序检索默认持续性单元的默认实体管理器。

如果要注入或查找与特定持续性单元关联的实体管理器,则将unitName设置为所需的String持续性单元名称。另请参阅@PersistenceContext。

对于相关性注入,不需要unitName。

对于 JNDI 查找,如果指定unitName,则由name访问的EntityManagerFactory必须与此持续性单元关联。

表 1-35 @PersistenceUnit 属性

属性 必需 说明

name wps_clip_image_24059.png 默认值:JPA 持续性提供程序从默认EntityManagerFactory中获取它的EntityManager实例。

如果希望 JPA 持续性提供程序在注入或查找实体管理器时使用特定的EntityManagerFactory,请将name设置为所需的实体管理器工厂的String名称。

对于相关性注入,不需要name。

对于 JNDI 查找,必须将name设置为要在环境引用上下文中访问实体管理器所使用的名称。

unitName wps_clip_image_15525.png 默认值:JPA 持续性提供程序检索默认持续性单元的默认实体管理器。

如果要注入或查找与特定持续性单元关联的实体管理器,则将unitName设置为所需的String持续性单元名称。另请参阅@PersistenceContext。

对于相关性注入,不需要unitName。

对于 JNDI 查找,如果指定unitName,则由name访问的EntityManagerFactory必须与此持续性单元关联。

表 1-36 @PersistenceUnits 属性 属性 必需 说明

value wps_clip_image_24140.png 要指定两个或更多持续性单元,请将value设置为;PersistenceUnit实例数组(请参阅@PersistenceUnit)。

表 1-37 @PrimaryKeyJoinColumn 属性 属性 必需 说明

columnDefinition wps_clip_image_24232.png 默认值:空String。

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

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

不要将此属性与@OneToOne 映射一起使用。

name wps_clip_image_28134.png 默认值:JPA 持续性提供程序对当前表的主键列采用以下名称之一(取决于您使用该批注的方式):

·InheritanceType.JOINED(请参阅@Inheritance):与超类的主键列同名。

·@SecondaryTable 映射:与主表的主键列同名。

·@OneToOne 映射:与引用实体的表的主键列同名。

如果该名称难于处理、是一个保留字、与事先存在的数据模型不兼容或作为数据库中的列名无效,则将name设置为所需的String列名。

referencedColumnName wps_clip_image_9437.png 默认值:JPA 持续性提供程序对连接到的表的主键列采用以下名称之一(取决于您使用该批注的方式):

·InheritanceType.JOINED(请参阅@Inheritance):与超类的主表的主键列同名。

·@SecondaryTable 映射:与主表的主键列同名。

·@OneToOne 映射:与被引用实体的表的主键列同名。

如果该名称难于处理、是一个保留字、与预先存在的数据模型不兼容或作为数据库中的列名无效,请将referencedColumnName设置为所需的String列名。

表 1-38 @PrimaryKeyJoinColumns 属性 属性 必需 说明

value wps_clip_image_24506.png 要指定一个复合(多列)主键,请将value设置为;PrimaryKeyJoinColumn实例的数组(请参阅@PrimaryKeyJoinColumn)。

表 1-39 @QueryHint 属性

属性 必需 说明

name wps_clip_image_24614.png 要指定提示名称,请将name设置为String提示名称。

有关提示的详细信息,请参阅 JPA 持续性提供程序文档。

value wps_clip_image_7746.png 要指定提示的值,请将value设置为所需的String提示值。

有关提示值的详细信息,请参阅 JPA 持续性提供程序文档。

表 1-40 @SecondaryTable 属性

属性 必需 说明

姓名 wps_clip_image_24800.png 如果实体使用辅助表,请将name设置为String表名。

catalog wps_clip_image_30581.png 默认值:JPA 持续性提供程序使用任何适用于数据库的默认目录。

如果默认目录不适合于应用程序,请将catalog设置为要使用的String目录名。

pkJoinColumns wps_clip_image_4843.png 默认值:JPA 持续性提供程序假设实体的数据库表中的任何列均不用于主键连接。

如果对该表中的主键连接使用一个或多个列,请将pkJoinColumns设置为一个或多个@PrimaryKeyJoinColumn实例的数组。有关详细信息,请参阅@PrimaryKeyJoinColumn。

schema wps_clip_image_27420.png 默认值:JPA 持续性提供程序使用任何适用于数据库的默认模式。

如果默认模式不适合于应用程序,请将schema设置为要使用的String模式名。

uniqueConstraints wps_clip_image_19007.png 默认值:JPA 持续性提供程序假设实体的数据库表中的任何列均没有唯一约束。

如果唯一约束应用于该表中的一列或多列,请将uniqueContraints设置为一个或多个UniqueConstraint实例的数组。有关详细信息,请参阅@UniqueConstraint。

表 1-41 @SecondaryTables 属性 属性 必需 说明

value wps_clip_image_24950.png 要指定两个或更多辅助表,请将value设置为SecondaryTable实例的数组(请参阅@SecondaryTable)。

表 1-42 @SequenceGenerator 属性 属性 必需 说明

name wps_clip_image_25091.png SequenceGenerator的名称必须匹配其startegy设置为SEQUENCE的GeneratedValue的名称。

allocationSize wps_clip_image_4149.png 默认值: 50.

默认情况下,JPA 持续性提供程序使用的分配大小为 50。

如果此分配大小与应用程序要求或数据库性能参数不匹配,请将allocationSize设置为所需的int值。

initialValue wps_clip_image_21890.png 默认值: 0.

默认情况下,JPA 持续性提供程序假设持续性提供程序将所有主键值的起始值设置为 0。

如果这与现有数据模型不匹配,请将initialValue设置为所需的int值。

sequenceName wps_clip_image_6367.png 默认值:JPA 持续性提供程序分配它自己创建的序列名。

如果要使用事先存在或预定义的序列,请将sequenceName设置为所需的String名称。

表 1-43 @SqlResultSetMapping 属性

属性 必需 说明

name wps_clip_image_25398.png 将name设置为此@SqlResultSetMapping的String名称。

这是用于将@SqlResultSetMapping与原生 SQL 查询关联的名称(请参阅示例 1-84)。

columns wps_clip_image_31459.png 默认值:空ColumnResult数组。

默认情况下,JPA 持续性提供程序假设SELECT语句只返回实体。

如果SELECT语句返回标量值,则将columns设置为ColumnResult实例的数组,每个标量结果一个@ColumnResult。

entities wps_clip_image_29954.png 默认值:空EntityResult数组。

默认情况下,JPA 持续性提供程序假设 SELECT 语句返回一个类型的实体。

如果 SELECT 语句返回多个类型的实体,请将实体设置为EntityResult实例的数组,每个返回的实体类型一个@EntityResult。

表 1-44 @SqlResultSetMappings 属性

属性 必需 说明

value wps_clip_image_25453.png 要指定两个或更多 SQL 结果集映射,请将value设置为@SqlResultSetMapping 实例的数组。

表 1-45 @Table 属性 属性 必需 说明

catalog wps_clip_image_25548.png 默认值:JPA 持续性提供程序使用任何适用于数据库的默认目录。

如果默认目录不适合于应用程序,请将catalog设置为要使用的String目录名。

name wps_clip_image_1598.png 默认值:JPA 持续性提供程序假设实体的数据库表与实体类同名。在示例 1-86 中,默认 name为Employee。

如果实体类名难以处理、是一个保留字或与预先存在的数据模型不兼容,请将name设置为相应的数据表名称。在示例 1-86 中,JPA 将实体类 Employee持久保存到名为EMP的数据库表中。

schema wps_clip_image_32506.png 默认值:JPA 持续性提供程序使用任何适用于数据库的默认模式。

如果默认模式不适合于应用程序,请将schema设置为要使用的String模式名。

uniqueConstraints wps_clip_image_127.png 默认值:JPA 持续性提供程序假设实体的数据库表中的任何列均没有唯一约束。

如果唯一约束应用于该表中的一列或多列,请将 uniqueContraints 设置为一个或多个UniqueConstraint实例的数组。有关详细信息,请参阅@UniqueConstraint。

表 1-46 @TableGenerator 属性

属性 必需 说明

name wps_clip_image_25652.png SequenceGenerator的名称必须匹配其startegy设置为startegy的GeneratedValue的名称。生成器名称的作用域对持续性单元是全局的(跨所有生成器类型)。

allocationSize wps_clip_image_17867.png 默认值: 50.

默认情况下,JPA 持续性提供程序使用的分配大小为 50。

如果此分配大小与应用程序要求或数据库性能参数不匹配,请将allocationSize设置为所需的int值。

catalog wps_clip_image_14335.png 默认值:JPA 持续性提供程序使用任何适用于数据库的默认目录。

如果默认目录不适合于应用程序,请将catalog设置为要使用的String目录名。

initialValue wps_clip_image_16489.png 默认值: 0.

默认情况下,JPA 持续性提供程序将所有主键值的起始值设置为 0。

如果这与现有数据模型不匹配,请将initialValue设置为所需的int值。

pkColumnName wps_clip_image_24135.png 默认值:JPA 持续性提供程序为生成器表中的主键列提供名称。

如果该名称不适合于应用程序,请将pkColumnName设置为所需的String名称。

pkColumnValue wps_clip_image_8911.png 默认值:JPA 持续性提供程序为生成器表中的主键列提供一个合适的主键值。

如果该值不适合于应用程序,请将pkColumnValue设置为所需的String值。

schema wps_clip_image_28802.png 默认值:JPA 持续性提供程序使用任何适用于数据库的默认模式。

如果默认模式不适合于应用程序,请将schema设置为要使用的String模式名。

table wps_clip_image_5240.png 默认值:JPA 持续性提供程序为存储生成的 ID 值的表提供了一个合适的名称。

如果默认表名不适合于应用程序,请将table设置为所需的String表名。

uniqueConstraints wps_clip_image_9369.png 默认值:JPA 持续性提供程序假设主键生成器表中的任何列均没有唯一约束。

如果唯一约束应用于该表中的一列或多列,则将uniqueContraints设置为一个或多个UniqueConstraint实例的数组。有关详细信息,请参阅@UniqueConstraint。

valueColumnName wps_clip_image_22174.png 默认值:JPA 持续性提供程序为存储生成的 ID 值的列提供了一个合适的名称。

如果默认列名不适合于应用程序,请将valueColumnName设置为所需的String列名。

表 1-47 @Temporal 属性

属性 必需 说明

value wps_clip_image_25816.png 将value设置为与希望 JPA 持续性提供程序使用的数据库类型相对应的TemporalType:

·DATE- 等于java.sql.Date

·TIME- 等于java.sql.Time

·TIMESTAMP- 等于java.sql.Timestamp

表 1-48 @UniqueConstraint 属性

属性 必需 说明

columnNames wps_clip_image_25884.png 如果任何列均包含唯一约束,请将columnNames设置为String列名的数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值