信息化 频道

developerWorks



    【IT168 专稿】JSR 22O规范定义了EJB 3.0的一些规范。该规范的主要目标就是简化实体 bean的创建、管理、以及存储。为了朝着这个目标前进,Sun公司的 Microsystems和支持此规范的社区开发者们创建了一个新的应用程序可编程接口,能够让你将“老的Java对象”或者POJO作为你的持久化实体使用。新的Java 持久化API 能够是你更加容易的将POJO作为实体bean使用,同时,减少复杂的部署描述和额外的辅助bean,甚至你能将这些API 应用到桌面应用程序。
 
如果你使用这个新的API的话,你就会发现许多的优点,没有理由不让你去使用它,这里我就只举出一些优点:
1.你不需要创建复杂的DAO。
2.API帮助你管理事务。
3.你所写的基于标准的待么能够和任何关系数据库交互,从特定的数据库商家规范中解脱出来。
4.你可以避免直接使用SQL语句,可以使用你类名和属性方法作为查询语言。
5.你能使用和管理POJO。
6.你同样可以使用Java持久化API作为桌面应用程序的持久化开发。

一、API概述
 
Java持久化 API是 Java EE 5规范的一部分。你将会在 javax.persistence包中找到你操作实体的所有东西。首先你所需要的就是 EntityManager实例。一个 EntityManager实例提供了开始,结束事务的方法,在 persistence context中持续或者查找实体的方法,并且还是合并,甚至是删除那些实体的方法。另外,一个 EntityManager实例能够创建和执行查询。
 
一个 persistence context是一组唯一的实体实例,在运行时刻有持续提供者( persistence provider)管理它们。与之类似的一个术语就是 persistence unit,它是一组实体类的集合,不过这些实体类是应用程序可能用到的类。一个 persistence unit定义了映射到一个单独数据库的一组实体。
 
在此API中,实体有自己的声明周期。知道它们的生命周期有助于你理解 API如何操作这些实体。实体不同的状态如下所述:
创建——一个新的实体就是一个你应用程序的一个新对象。一个新的实体将会存在于你的应用程序中,但是 persistence context不会知道这些实体的存在。
管制——受管制实体是那些已经持久化,或者是说已经存在于数据库的那些实体。这些实体在 persistence context.身份唯一。
脱管——脱管的实体就是有一个持久化的身份,但是在 persistence context中当前不会被激活管制。
删除——被删除的实体存在于 persistence context中,但是已经位于隔离,或者说是删除的行列了。
 
下面的章节,我将要描述如何让你操作这些实体,并且让你明白在不同生命周期状态下,这些实体状态是如何变化的。

二、实体的创建
 
既然实体是POJO,你创建它们就像创建任何一个对象一样。你能使用 new关键字创建一个类的实例。你可以创建一个新的 Player实体,同时使用 new关键字调用 Player构造函数。

Player p = new Player();
 
从这一点上讲,你可以设置 player的名称,号码等相关的信息。同时,你可以在构造函数中设置相应的属性。这个非常有用,并且很方便,特别是当你使用基于字段持久化性声明,而不是基于属性的声明。新的实体创建后,还没有被任何一个 persistence context管制。
0
相关文章