使用Apache OpenJPA开发EJB 3.0应用,第5部分: 实体标识的自动生成 - 编程入门网
ALUE 的值会以 50 为单位 递增,变为 101、151、201 …。
OpenJPA 缓存的实体标识不是永 久存在的,只能在同一个 EntityManagerFactory 管理范围内起作用,也就是说 ,当获取实体标识的 EntityManagerFactory 对象被关闭后,这些被获取的实体 标识中没有用掉的那一部分标识就丢失了,这会造成实体标识的不连续。由同一 个 EntityManagerFactory 对象创建的 EntityManager 上下文之间则能够共享 OpenJPA 框架获取的实体标识,这意味着,我们可以使用同一个 EntityManagerFactory 对象创建多个 EntityManager 对象,用它来持久化实体 ,然后关闭它,在持久化过程中所需要的实体表示将会使用同一个实体标识的缓 存区,因此不会引起实体标识的丢失。 容器管理的实体标识还有一个非常 重要的特性:所有被容器管理的实体标识都是共享的。不管 OpenJPA 容器中存在 多少个不同的被容器管理的实体标识,它们都会从同一个实体标识缓存中获取实 体标识。我们可以用下面的例子说明这种情况:假设 OpenJPA 容器中存在两个实 体类 Dog 和 Fish,它们的实体标识字段都是数值型,并且都由 OpenJPA 管理。 当我们首先持久化一个 Dog 对象时,它的实体标识将会是 1,紧接着我们持久化 一个 Fish 对象,它的实体标识就是 2,依次类推。 uuid-string 要使用 uuid-string 机制自动生成实体标识,我们需要将实体主键字段 的 GeneratedValue 注释的 strategy 属性设置为 GenarationType.AUTO,然后 将 GeneratedValue 注释的 generator 属性设置为 uuid-string。以 Animal 实 体类为例,我们只需要将 Animal 实体修改为如下内容: 清单 2. 使用 uuid-string 机制自动生成实体标识
使用Apache OpenJPA开发EJB 3.0应用,第5部分: 实体标识的自动生成(5)时间:2011-08-31 IBM 肖菁uuid-hex 要使用 uuid-hex 机制自动生成实体标识,我们必须将实体主键字段的 GeneratedValue 注释的 strategy 属性设置为 GenarationType.AUTO,然后将 GeneratedValue 注释的 generator 属性设置为 uuid-hex。以 Animal 实体类为例,我们只需要 将 Animal 实体修改为如下内容: 清单 3. 使用 uuid-hex 机制自动生成 实体标识
自增长字段 自增长 字段是 HSQL、SQL Server、MySQL、DB2、Derby 等数据库提供的一种特性,用于 为数据库的记录提供自动增长的编号,应用程序的设计者通常期望将实体标识的 自动生成委托给数据库的这种特性,OpenJPA 框架中的实体标识能够满足应用程 序设计者的要求,使用数据库的自增长字段为实体自动生成标识。 要将实 体标识的自动生成委托给数据库的自增长字段特性,需要数据库和实体定义的双 方配合才能够达到:首先,必须将实体标识字段对应的数据库列修改为自动增长 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |