将遗留Hibernate应用程序迁移到OpenJPA和EJB 3.0(一) - 编程入门网
持久对象。
更新持久对象。 删除持久对象。 通常,这些场景会映射到单个用例操作,并使用分离的实体在独立的事务中执行,但是它们还可以与 连接的实体一起使用。 Hibernate 约定 在 Hibernate 中,实体管理按照以下方式进行映射: 使用 Session#save 使临时对象持久化。 使用 Session#load 检索持久对象。 使用 Session#update 更新分离对象的持久状态。(如果修改持久(连接)对象的状态,则不需要调 用更新;在调用 commit() 时,Hibernate 自动将更新传播到数据库。) 使用 Session#delete 使分离或持久对象成为临时对象。 将遗留Hibernate应用程序迁移到OpenJPA和EJB 3.0(一)(7)时间:2011-09-18 Donald Vines清单 7. Hibernate 实体管理
OpenJPA 约定 在 OpenJPA 中,等效的实体管理按照以下方式进行映射: 使用 EntityManager#persist 创建持久实体。 使用 EntityManager#find 检索持久实体。 使用 EntityManager#merge 更新分离实体。(如果使用持久(连接)实体,则无需调用 merge; OpenJPA 将更新传播到事务末尾的数据库。) 使用 EntityManager#remove 删除分离的或持久实体。 清单 8. OpenJPA 实体管理
在本示例中,ORMHelper#update() 方法的签名已更改,因为 Hibernate update() 方法将新托管的持 久状态复制到传递给该方法的分离或(临时)对象,所以它没有返回值。相反,在 OpenJPA merge() 方 法中,原始的分离(临时)对象未更改,返回值包含新托管的持久状态。 除更改 ORMHelper#update 签名外,还必须更改调用该签名的遗留应用程序,以便将返回值显式分配 给原始的临时对象。 将遗留Hibernate应用程序迁移到OpenJPA和EJB 3.0(一)(8)时间:2011-09-18 Donald Vines6. 分离的实体 基于分层体系结构的 Hibernate 应用程序中另一个常见场景是,将无状态会话 EJB 用作会话 facade 来将“分离”实体返回给 Web 层。在此场景中,您将发现会话 EJB 启动和停止事务以响应来自 Web 层 的调用。 用于分层体系结构的这一模式的好处是,由于 EJB 层根据用户交互来启动和停止事务,因此在用户执 行某项工作时,事务从不保持打开状态。因此,所有事务的生存时间很短,应在数秒中完成。 大多数现有 Hibernate 应用程序使用 EJB 2.1 实现会话 EJB,而大多数 OpenJPA 应用程序则使用 EJB 3.0。您最初应使用资源本地实体管理器迁移到 EJB 3.0 会话 Bean,这样不需要对事务逻辑进行更 改,但您还可以从 EJB 2.1 会话 Bean 使用 OpenJPA(请参见 通过 WebSphere Application Server V |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |