快速业务通道

Kodo EJB:实现类和类之间的关联关系 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
下面我们看看Kodo EJB中如何调用这两个类完成Book类和BookExtend类的创建、修改、删除工作。

由于篇幅的关系,这些没有讲述如何编译、加强这些类并且准备相应的配置文件来完成整个项目开发环境的建立,这部分的内容请参考我的另外一篇文章《Kodo EJB:符合EJB3规范的持久层框架》

级联新建对象

下面的这段代码演示了只需要调用Book类的persist方法就同时持久化Book类对象和BookExtend类对象的情况。请注意其中用粗体标识出的部分。 /* 获得EJB的实体管理器 */ EntityManagerFactory emf = Persistence.createEntityManagerFactory(null); EntityManager em = emf    .createEntityManager(PersistenceContextType.EXTENDED); /* 开始事务 */ em.getTransaction().begin(); /* 创建新的Book对象 */ Book book = new Book(); /* 设置Book对象的name属性 */ book.name = "Kodo入门"; /* 创建新的BookExtend对象 */ BookExtend bookExtend = new BookExtend(); /* 设置对象属性 */ bookExtend.name = "Spring is a very good book that ..."; /* 建立对象之间的关系 */ book.bookExtend = bookExtend; /* 持久化对象,只需要持久化Book对象,不需要单独持久化bookExtend对象 */ em.persist(book); /* 结束事务 */ em.getTransaction().commit(); em.close(); emf.close();

级联更新对象状态

下面的这段代码演示了只需要调用Book类的merge方法就同时更新Book类对象和BookExtend类对象状态的情况。请注意其中用粗体标识出的部分。

/* 获得EJB的实体管理器 */ EntityManagerFactory emf = Persistence.createEntityManagerFactory(null); EntityManager em = emf    .createEntityManager(PersistenceContextType.EXTENDED); /* 开始事务 */ em.getTransaction().begin(); /* 创建新的Book对象 */ Book book = new Book(); /* 设置Book对象的id属性 */ book.id= 1; book.name = “Kodo 入门”; /* 创建新的BookExtend对象 */ BookExtend bookExtend = new BookExtend(); /* 设置对象属性 */ bookExtend.id=1; bookExtend.name = "Kodo 分为Kodo EJB和Kodo JDO ..."; /* 建立对象之间的关系 */ book.bookExtend = bookExtend; /* 持久化对象,只需要调用Book对象的merge方法,不需要单独处理bookExtend对象 */ em.merge(book); /* 结束事务 */ em.getTransaction().commit(); em.close(); emf.close();  级联删除对象/* 获得EJB的实体管理器 */ EntityManagerFactory emf = Persistence.createEntityManagerFactory(null); EntityManager em = emf    .createEntityManager(PersistenceContextType.EXTENDED); /* 开始事务 */ em.getTransaction().begin(); /* 使用查询删除对象,可以不必将对象加入到内存中,提高效率 */ Query q = entityManager    .createQuery("delete from Book c WHERE c.id=:id"); int id = book.id; /* 设置被删除Book对象的主键值 */ q.setParameter("id", id); /* 当方法被调用时,Book对象对应的BookExtend对象会同时被删除 */ q.executeUpdate(); /* 结束事务 */ em.getTransaction().commit(); em.close(); emf.close();

Kodo EJB:实现类和类之间的关联关系(5)

时间:2011-03-05 bea 肖菁

其他几种关联关系

一对多

我们可以使用OneToMany注释来描述类和类之间的一对多关系,OneToMany注释有四个属性:targetEntity、mappedBy、cascade和fetch,这四个属性的具体含义和OneToOne注释注释的同名属性一一对应,请大家参考前面章节中的内容。

多对一

我们可以使用ManyToOne注释来描述类和类之间的多对一关系,ManyToOne注

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