快速业务通道

使用Apache OpenJPA开发EJB 3.0应用,第5部分: 实体标识的自动生成 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15

@javax.persistence.TableGenerator

如果实 体标识的自动生策略是 GenerationType.TABLE,开发者需要为实体标识字段提供 TableGenerator 注释,它的参数描述了使用数据库表生成实体标识的具体细节。 该注释支持下列属性:

表 2. TableGenerator 注释属性说明

属性 说明
name 该属性是必须设置的属性,它表示了 TableGenerator 注释在 OpenJPA 容器中的 唯一名称,将会被 GeneratedValue 注释的 generator 属性所使用。将实体标识 的自动生成委托给数据库表时,实体标识字段的 GeneratedValue 注释的 generator 属性的值必须和某个 TableGenerator 注释的 name 属性值保持一致 。
table 该属性设置的是生成序列号的表的名称。 该属性并不是必须设置的属性,如果开发者没有为该属性设置值,OpenJPA 容器 将会使用默认的表名 OPENJPA_SEQUENCES_TABLE 。
schema 该属性设置的是生成序列号的表的 schema 。该属性并不是必须设置的属性,如果开发者没有为该属性设置值,OpenJPA 容 器将会默认使用当前数据库用户对应的 schema。
catalog 该属性设置的是生成序列号的表的 catalog。该属性并不是必须设置的属性,如果开发者没有为该属性设置值, OpenJPA 容器将会使用默认当前数据库用户对应的 catalog。
pkColumnName 该属性设置的是生成序列号的表中的 主键字段的名称,该字段将保存代表每个实体对应的标识值对应的特征字符串。 该属性并不是必须设置的属性,如果开发者没有为该属性设置值,OpenJPA 容器 将会使用默认值 ID 。
valueColumnName 该属性设 置的是生成序列号的表中记录实体对应标识最大值的字段的名称。该属性并不是 必须设置的属性,如果开发者没有为该 属性设置值,OpenJPA 容器将会使用默认 值 SEQUENCE_VALUE 。
pkColumnValue 该属性设置 的是生成序列号的表中的主键字段的特征字符串值 ( 比如 customID ),该字段 将保存代表每个实体对应的标识值对应的特征字符串。该属性并不是必须设置的 属性,如果开发者没有为该属性设置值,OpenJPA 容器将会使用默认值 DEFAULT 。可以为多个实体设置相同的 pkColumnValue 属性值,这些实体标识的生成将通 过同一列的值的递增来实现。
initialValue 该属性 设置的是生成序列号的表实体标识的初始值。该属性并不是必须设置的属性,如 果开发者没有为该属性设置值,OpenJPA 容器将会使用默认值 0 。
allocationSize 为了降低标识生成时频繁操作数据 库造成 的性能上的影响,实体标识生成的时候会一次性的获取多个实体标识,该 属性设置的就是一次性获取实体标识的数目。该属性并不是必须设置的属性,如 果开发者没有为该属性设置值,OpenJPA 容器将会使用默认值 50 。

使用Apache OpenJPA开发EJB 3.0应用,第5部分: 实体标识的自动生成(3)

时间:2011-08-31 IBM 肖菁

实体标识自动生成

在上面的小节中,我们了 解了和实体标识自动生成相关的注释,接下来我们将结合一个简单的例子讲述如 何分别使用这些实体标识自动生成策略实现实体标识的自动生成。

我们首 先假设有一个 Animal 实体需要被持久化,它包括 ID 和 NAME 属性,其中 ID 是它的主键字段。Animal 实体的标识需要自动生成,我们将分析

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号