快速业务通道

使用Apache OpenJPA开发EJB 3.0应用,第2部分:开发第一个Open JPA应用 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
FieldsFromObjectId(java.lang.Object ); 48.   public java.lang.Object pcNewObjectIdInstance (java.lang.Object); 49.   public java.lang.Object pcNewObjectIdInstance(); 50.   public java.lang.Boolean pcIsDetached(); 51.   public java.lang.Object pcGetDetachedState(); 52.   public void pcSetDetachedState(java.lang.Object); 53. }

使用Apache OpenJPA开发EJB 3.0应用,第2部分:开发第一个Open JPA应用(5)

时间:2011-08-31 IBM 肖菁

将新创建的实体类注册到 OpenJPA 容器中

在 OpenJPA 框架中,如果创建了新的实体类,必须通过修改配置文件,将它 注册到 OpenJPA 容器中,该实体类才能够被 OpenJPA 管理。将实体类方法注册 到 OpenJPA 容器中的方法是在 persistence.xml 中对应的 persistence-unit 元素下增加子元素 class,元素的内容就是被注册持久类的全名。比如我们要把 org.vivianj.openjpa.entity.Animal 注册到 OpenJPA 容器中,我们可以在 persistence.xml 中加入如下内容:

1. <persistence …> 2.   <persistence-unit …> 3.     … 4.      <class>org.vivianj.openjpa.entity.Animal</class> 5.     … 6.   </persistence-unit> 7. </persistence>

准备数据库

在 MySQL 数据库中新建名为“openjpa”的数据库。新创建数据库的访问用户 为“openjpa”,密码设置为“openjpa”,新创建的用户“openjpa”必须具有访 问读写“openjpa”数据库数据的权限。

保持实体类和数据库表结构一致性

OpenJPA 中提供了专门的 MappingTool (org.apache.openjpa.jdbc.meta.MappingTool)工具协助开发者保持实体类和 数据库表结构之间的一致性。MappingTool 工具能够自动的根据实体类中提供的 注释(Annotation),识别出对象、对象之间的继承/包含等关系以及如何在关系 型数据库中处理这些关系的设置,自动保证实体类和数据库之间的一致性,开发 者也可以选择使用 OpenJPA 生成创建数据库所需要的 SQL 语句,然后手动的保 持实体类和数据库之间的一致性。

可以使用下面的命令语句直接通过 MappingTool 在数据库中创建 OpenJPA 应 用所需要的数据库表。

java org.apache.openjpa.jdbc.meta.MappingTool Animal.java

命令执行完成后,我们通过 MySQL 的客户端访问 OpenJPA 数据库,可以发现 里面已经创建了名为“animal”的数据表。如果开发者不想让 MappingTool 自动 维护 OpenJPA 和数据库之间的映射,而只是想让 MappingTool 协助生成创建数 据库所需要的数据库表定义文件(DDL),可以使用下面的命令语句,其中的参数 -sql 的值就是生成数据库表定义文件的位置。

比如要将生成的数据库表定义文件写入当前文件夹下 animal.sql 文件的命令 如下:

java org.apache.openjpa.jdbc.meta.MappingTool –sql animal.sql  Animal.java

[注] 要成功执行 MapptingTool 工具,必须先将数据库的 JDBC 驱动放入到 classpath 中,否则会得到一个 org.apache.openjpa.util.StoreException 类 型的异常信息。

访问持久化对象

访问 OpenJPA 容器中管理的持久化对象所需要的基本步骤如下:

获取 OpenJPA 容器中配置好的 EntityManagerFactory 对象;

从 EntityManagerFactory 中获取 EntityManager 对象;

如果是处理持久化对象的创建、更新、删除动作,还需要从 EntityManager 中获取 EntityTransaction,并且调用其 begin(commit)方法显式的启动(提 交)事务;

使用Apache OpenJPA开发EJB 3.0应用,

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号