@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注解详解 JPA注解详解 java 程序使用 JPA注解 详解
java程序使用JPA注解详解.doc
java程序使用JPA注解详解.zip java程序使用JPA注解详解.zip java程序使用JPA注解详解.zip java程序使用JPA注解详解.zip java程序使用JPA注解详解.zip
JPA注解详解 默认情况下,JPA 持续性提供程序假设实体的所有持久字段均存储到一个名称为实体名称的数据库表中(请参阅 @Entity )。 在以下条件下,使用 @Table 批注指定与实体关联的主表:
JPA注解 详解 1、@Entity(name="EntityName") 必须,name为可选,对应数据库中一的个表 2、@Table(name="",catalog="",schema="") 可选,通常和@Entity配合使用,只能标注在实体的class定义处,表示实体对应的数据库表...
java开发的JPA 批注总结参考资料,内容非常详细,非常丰富。
Jpa注解的各种jpa注释详解
JPA注解详解 hibernate 标注 适合各种数据库 Hibernate+JPA注解教程
JPA用于整合现有的ORM技术,可以简化现有Java EE和Java SE应用对象持久化的开发工作,实现ORM的统一。JPA详解视频教程 第13讲 JPA中的多对多双向关联实体定义与注解设置.avi
13_JPA详解_JPA中的多对多双向关联实体定义与注解设置.zip 13_JPA详解_JPA中的多对多双向关联实体定义与注解设置.zip
spring 注解
主要介绍了JPA中EntityListeners注解的使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
JPA的基本注解主要包括@Entity、@Table、@Id、@GeneratedValue、@Basic、@Column、@Transient、@Temporal和@TableGenerator等。
Eclipse下配置JPA生成数据库表对应的已注解实体类(图文详解),自己亲自配置成功后截图讲解,通过数据库中的表直接生成已经注解好的实体类,很神奇...
主要介绍了如何使用IDEA的groovy脚本文件生成带JPA注解的实体类,本文通过图文并茂实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
'SpringDataJPA从入门到精通'分为12章 内容包括整体认识JPA、JPA基础查询方法、定义查询方法、注解式查询方法、@Entity实例里面常用注解详解、JpaRepository扩展详解、JPA的MVC扩展REST支持、DataSource的配置、乐观...
13_传智播客JPA详解_JPA中的多对多双向关联实体定义与注解设置.rar
Hibernate 注解 annotation 超级详细
下面小编就为大家带来一篇在JPA的@Query注解中使用limit条件(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧