`

JPA注解详解(一)

阅读更多

 

@Table

默认情况下,JPA 持续性提供程序假设实体的所有持久字段均存储到一个名称为实体名称的数据库表中(请参阅 @Entity )。

在以下条件下,使用 @Table 批注指定与实体关联的主表:

·    实体名称难于处理、是一个保留字、与预先存在的数据模型不兼容或作为数据库中的表名无效

·    需要控制表所属的目录或模式

如果希望 JPA 将某些字段持久保存到主表,而将其他字段持久保存到一个或多个辅助表,请参阅 @SecondaryTable

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

1-45 @Table 属性

属性

必需

说明

catalog

可选

 

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

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

name

可选

 

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

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

schema

可选

 

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

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

uniqueConstraints

可选

 

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

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

 

示例 1-86 显示了如何使用此批注指定主表名。

示例 1-86 @Table

@Entity

@Table(name="EMP")

public class Employee implements Serializable {

    ...

}

 

@TableGenerator

如果使用 @GeneratedValue 批注指定一个 TABLE 类型的主键生成器,可以使用 @TableGenerator 批注微调该主键生成器以:

·    由于名称难于处理、是一个保留字、与预先存在的数据模型不兼容或作为数据库中的表名无效而更改主键生成器的表名称

·    更改分配大小以匹配应用程序要求或数据库性能参数

·    更改初始值以匹配现有的数据模型(例如,如果基于已经为其分配或保留了一组主键值的现有数据集构建)

·    使用特定目录或模式配置主键生成器的表

·    在主键生成器表的一列或多列商配置一个唯一的约束

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

1-46 @TableGenerator 属性

属性

必需

说明

name

必需

 

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

allocationSize

可选

 

默认值: 50.

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

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

catalog

可选

 

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

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

initialValue

可选

 

默认值: 0.

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

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

pkColumnName

可选

 

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

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

pkColumnValue

可选

 

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

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

schema

可选

 

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

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

table

可选

 

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

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

uniqueConstraints

可选

 

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

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

valueColumnName

可选

 

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

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

 

示例 1-87 显示了如何使用此批注为名为 empGen TABLE 主键生成器指定分配大小。

示例 1-87 @TableGenerator

@Entity

public class Employee implements Serializable {

    ...

@Id

@TableGenerator(

name="empGen",

allocationSize=1

    )

@GeneratedValue(strategy=TABLE, generator="empGen")

@Column(name="CUST_ID")

public Long getId() {

return id;

    }

    ...

 

@Temporal

使用 @Temporal 批注指定 JPA 持续性提供程序应只为 java.util.Date java.util.Calendar 类型的字段或属性持久保存的数据库类型。

该批注可以与 @Basic 一起使用。

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

1-47 @Temporal 属性

属性

必需

说明

value

必需

 

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

  • DATE - 等于 java.sql.Date
  • TIME - 等于 java.sql.Time
  • TIMESTAMP - 等于 java.sql.Timestamp

 

示例 1-88 显示了如何使用此批注指定 JPA 持续性提供程序应将 java.util.Date 字段 startDate 持久保存为 DATE ( java.sql.Date ) 数据库类型。

示例 1-88 @Temporal

@Entity

public class Employee {

    ...

@Temporal(DATE)    protected java.util.Date startDate;

    ...

}

分享到:
评论

相关推荐

    java程序使用JPA注解详解.doc

    Java 程序使用 JPA 注解详解 Java 持久层 API(Java Persistence API)是一种 Java 应用程序接口,用于访问、管理和持久化数据之间的关系。JPA 使用注解来定义实体类与数据库表之间的映射关系,本文将详细介绍 JPA ...

    java程序使用JPA注解详解

    Java 程序使用 JPA 注解详解 Java 程序使用 JPA 注解可以实现对象关系映射(ORM),使得 Java 应用程序能够与关系数据库进行交互。JPA(Java Persistence API)提供了多种注解来定义实体类与数据库表之间的映射关系...

    jpa注解详解

    JPA注解详解 JPA(Java Persistence API)是Java企业版5(Java EE 5)的一部分,提供了一个对象关系映射方法,使得开发者可以使用声明方式定义如何将Java对象映射到关系数据库表。在JPA中,批注是一种使用元数据...

    JPA注解详解

    **JPA注解详解** Java Persistence API(JPA)是一种Java平台上的标准,用于管理和持久化对象关系映射(ORM)。在JPA中,注解是声明性编程的一部分,允许开发者在实体类上直接定义数据存储相关的元数据,简化数据库...

    java程序使用JPA注解详解.zip

    本资料主要探讨Java程序中如何有效利用JPA注解进行数据库交互。 在Java程序中,JPA注解通常应用于实体类(Entity)及其属性上,这些注解定义了实体与数据库表之间的关系。例如,`@Entity`注解标记一个类为数据库表...

    JPA注解说明 详解

    Java Persistence API (JPA) 是Java平台上的一个标准,用于管理关系数据库中的对象持久化。JPA通过使用注解或XML来定义对象-关系映射(ORM),简化了数据库操作。下面将详细介绍JPA中的一些核心注解及其用法。 1. *...

    jpa注解doc文档

    Jpa注解的各种jpa注释详解

    JPA注解参考文档.txt

    ### JPA注解参考知识点详解 #### 一、引言 Java Persistence API(简称JPA)作为Java企业版5(Java EE 5)标准的一部分,是Enterprise JavaBeans(EJB)3.0规范的重要组成部分。它极大地简化了EJB持久化,并提供了...

    JPA注解@Access实例

    **JPA注解@Access详解** Java Persistence API (JPA) 是Java中用于对象关系映射(ORM)的标准框架,它允许开发人员将Java类与数据库表进行映射,从而简化数据操作。在JPA中,`@Access`注解是用于指定实体属性访问...

    JPA 注解(一)

    **JPA注解详解(一)** Java Persistence API(JPA)是Java平台上的一个标准,用于管理和持久化对象到数据库。它简化了在Java应用中处理关系数据库的过程,通过提供一套注解来声明对象与数据库表之间的映射。本篇...

    JPA注解文档

    **JPA注解详解** Java Persistence API (JPA) 是Java平台上的一个规范,用于管理关系数据库中的对象。它提供了一种面向对象的方式来操作数据库,而无需深入理解SQL。在这个文档中,我们将深入探讨JPA中的一些核心...

    Jpa注解编程_好不容易找到

    ### JPA注解编程知识点详解 #### 一、引言 在现代软件开发过程中,持久化数据至数据库是一项常见的需求。Java Persistence API (JPA) 作为一种标准规范,提供了对象关系映射(ORM)功能,使得Java开发者可以更加...

    JPA注解参考

    ### JPA注解详解:构建高效数据库映射与操作 #### 概述 JPA(Java Persistence API)作为Java EE 5(Java Platform, Enterprise Edition)标准的一部分,为EJB 3.0提供了对象关系映射(ORM)的能力。它不仅简化了...

    JPA注解帮助文档

    ### JPA注解详解 #### 一、概述 Java Persistence API (JPA) 是 Java 社区标准 JSR-317 的一部分,它提供了一种面向对象的方式来处理数据库操作,极大地方便了 Java 应用程序对关系数据库的操作。JPA 主要包括两个...

    JPA注解(转)

    **JPA注解详解** Java Persistence API(JPA)是Java平台上的一个标准,用于管理关系数据库中的数据。它提供了一种对象/关系映射(ORM)机制,使得开发人员可以使用面向对象的编程方式来操作数据库。在JPA中,注解...

    JPA注解总结

    ### JPA注解详解 Java Persistence API (JPA) 是一种用于管理关系型数据库对象的标准。JPA 使用注解和 XML 来配置实体类与数据库表之间的映射关系。本文将详细解读 JPA 注解的基本用法,并通过 Hibernate 框架作为...

    11_传智播客JPA详解_JPA中的一对多延迟加载与关系维护

    本教程“11_传智播客JPA详解_JPA中的一对多延迟加载与关系维护”聚焦于JPA在处理一对多关系时的延迟加载机制以及如何有效地维护这些关系。 一、JPA一对多关系 在数据库中,一对多关系意味着一个实体可以与多个其他...

    JPA注解详细解释、EJB3、 Hibernate开发

    ### JPA注解详解 Java Persistence API (JPA) 是一种用于管理关系型数据库对象的标准。JPA 使用注解来简化对象与关系映射(ORM)的过程,这使得开发者能够更加专注于业务逻辑而不是数据访问层的细节。下面将详细...

    JPA教程详解,这是个word文档,需要的可以拿走

    ### JPA教程详解 #### 前言与概述 Java持久性API(JPA)是一项重要的技术标准,它为Java应用程序提供了与关系型数据库交互的能力。JPA的主要目的是简化对象关系映射(ORM),使开发者能够更加高效地管理和操作...

Global site tag (gtag.js) - Google Analytics