首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
首页 | JAVA | C# | VB | VB.NET | C/C++ | delphi | 工程管理 | 其他语言 | 论坛
各大城市软件开发培训、软件人才免费咨询热线:400-700-5807
 您现在的位置: 中国IT实验室 >> 桌面开发 >> 其他语言 >> 正文
EJB3 Persistence API标准化持久性
来源:ChinaItLab 作者:佚名 时间:2007-6-21



  要创建动态查询,请使用实体管理器接口的createQuery方法,如下所示:

Query query = em.createQuery(
"select e from Employee e where e.empNo > 1");
query.setParameter(1,100);
return query.getResultList();

  如果希望将此查询用作指定查询,请在实体中使用NamedQuery注释,如下所示:

@Entity
@NamedQuery(name="findAllEmployee",
query="select e from Employee e where e.empNo > 1")
public abstract class Employee implements Serializable {
}

  要执行指定查询,首先使用EntityManager接口上的createNamedQuery方法创建一个Query实例,如下所示:

query = em.createNamedQuery(" findAllEmployee");
query.setParameter(1,100);
return query.getResultList();

  指定参数

  可以在EJBQL查询中使用指定参数(named parameter)代替位置参数(positional parameter)。例如,可以将以上查询重写如下:

  "select e from Employee e where e.empNo > :empNo "

  如果在查询中使用指定参数,则必须设置此参数如下:

query = em.createNamedQuery("findAllEmployee");
query.setParameter("empNo",100);
return query.getResultList();

  打包

  EJB3 JPA标准化了POJO持久性。因此,实体并不局限于EJB模块;它们能够打包到Web模块、ejb-jar模块、EAR级中的库模块或标准jar文件中。也可以在Java SE中使用实体。必须在包含实体的档案文件中打包描述符(persistence.XML),如下所示:

<persistence>
<persistence-unit name="onjava">
<provider>Oracle.toplink.essentials.PersistenceProvider</provider>
<jta-data-source>JDBC/OracleDS</jta-data-source>
...
</persistence-unit>
</persistence>

  此描述符标识持久性提供程序、持久单元和持久单元所使用的数据源。正如其名称所暗示的,持久单元是集中管理的实体的集合。如果有一个定义在特定模块中的持久单元,就不需要在persistence.xml中标识实体类;它将由持久性提供程序动态发现。

  参考实现

  BEA Kodo以及Oracle TopLink的TopLink Essentials都提供了EJB3 JPA的参考实现。它可分别从Open JPA和GlassFish开源项目中得到。

  您可以在参考实现服务器或其他任何服从EJB3 JPA的应用服务器上使用本文中的代码。

  EJB3 JPA工具

  开发工具确实能够帮助构建更好的应用程序,而如果使用XML实现O-R映射,情况可能就不太妙了。Eclipse Dali O-R映射项目,Oracle JDeveloper 10.1.3和BEA Workshop studio之类的工具都支持EJB3 JPA。

  结束语

  EJB3 Java Persistence API标准化了面向Java平台的持久性API。它通过使用元数据注释和异常配置方法,简化了透明持久性的使用。多种应用服务器已支持EJB3规范(编者注:BEA已经发布WebLogic Server EJB 3.0 Tech Preview )。随着Java EE 5.0和EJB 3.0规范的完成,您将很快看到许多一流的应用服务器和持久性提供程序会实现EJB3 Java Persistence API。您可以使用来自GlassFish项目的 参考实现 来启用EJB3 Persistence。

上一页  [1] [2] [3] [4] [5] [6] 

【责编:Youping】
中国IT教育热线咨询
相关文章
没有相关文章
推荐文章

 精彩友情推荐
·Asp源码 PHP源码
·CGI源码 JSP源码
·建站书籍教程
·服务器软件 .net源码
·建站工具软件
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
最新更新 推荐文章
·框架:J2EE WEB应用架构分析…03-13
·几种VC++数据库开发技术的相对比…03-13
·利用C#实现标注式消息提示窗口03-13
·用C#创建COM对象03-13
·Visual C#多线程参数传递浅析…03-13
·Visual C#多线程参数传递浅析…03-13
·基于HOOK和MMF的Win密码渗透技术11-15
·Visual C++设计超强仿QQ自动伸缩…11-15
·Java SE 6.0实现高质量桌面集成开…11-15
·史玉柱东山再起幕后高人11-15
·用C#创建COM对象09-06
·IT管理十大失误及其对策08-30
·VC中利用MFC设计绘图程序初步08-23
·JAVA中对象创建和初始化过程08-23
·C语言中的位域的使用08-09
·浅谈Java桌面应用程序开发08-09
·C#的前途如何?08-02
·几种VC++数据库开发技术的相对比较07-12
·用Visual C#实现网络封包监视…07-12
·VB.NET中的TextBox控件详解07-12
·VB.NET实现PC与掌上电脑PPC的双向通信07-05