`

EJB3.0开发中的mappedBy用法

    博客分类:
  • EJB3
阅读更多
1、  mappedBy的用法:

①、如果两个实体Bean是双向多对多关联,在使用了mappedBy的一端我们称为关系目标方(方便起见,称为被控方),另一端称之为关系拥有方(方便起见,称为控制方)。相应的对象以下称之为主控对像和被控对象。注:佛山人出的那本书上对此的注释正好相返了。在6.6.3节,一对一映射中,原语如下:一对一关系需要在关系维护端(owner side)的@OneToOne注释中定义mappedBy 属性。在关系被维护端(inverseside)建立外键列指向关系维护端的主键列。

②、容器在根据上述的mappedBy关系建立临时表时,是以“主控表名_被控表名”的方式创建的。

③、在利用em.persist()方法新增主控对象,并且主控对像设置了被控对像的集合属性,则被控对象和主控对像的关联关系会增加到中间关联表。反过来增加被控对像,则关联关系不会增加在关联表中,除非利用merge方法修改被控对像。这就是mappedBy的用法。

④、举例说明:




以上三个类(除User)为双向多对多关系,实体之前没有任何级联关系。User依赖于Account,他们的级联关系为all,且为单向一对一的关系,User映射到Account.在TestCase中写如下代码:

PermissionManager manager = BeanLookup.getInstance().lookup(PermissionManager.class);

        //和用户关联;

manager.addPermission("KEY_6", new Dialect("Permission6", "zh_CN"),

new Dialect("description6", "zh_CN"), null, null);

Permission permission = manager.getPermissionByKey("KEY_6");

assertNotNull(permission);

Account account = new Account();

account.setAccount("557");

account.setPassword("557");

account.getPermissions().add(permission);

User user = new User();

user.setAccount(account);

user.setName(new Dialect("name1", "zh_CN"));

user.setCreationTime(new Date());

UserManager userManager = BeanLookup.getInstance().lookup(UserManager.class);

userManager.addUser(user);

由于User和Account是级联保存的,所以Account在User新增的时候也会增加。如果在实体Bean中把Account设置为关系主控端,则上述写法会自动将account与permission的关联关系写入中间关联表。如果Account为关系被控端,则不会。(注意上述代码红色部份)或者手工去merger(permission)也能实现写入关联关系进中间表。

2、  在一个TestCase中通过Collection.getSize()方法去加载一个延迟的集合属性不起作用。这种方法只能在Session Bean中起作用。
分享到:
评论

相关推荐

    ejb3.0开发规范PDF

    ejb3.0开发规范,开发ejb3.0过程中的参考文档

    ejb3.0开发实例(java工程)

    ejb3.0开发实例,会话bean开发,完整代码,适合入门学者

    EJB3.0入门经典(PDF)

    《EJB3.0入门经典》是关于EJB 3.0的专业技术教程,从实用的角度出发,理论联系实际,用9章的篇幅详细讲解了EJB 3.0开发的方法和技巧。《EJB3.0入门经典》内容丰富,讲解由浅入深,全面系统,在讲解EJB 3.0最新开发...

    ejb3.0入门图文教程

    ejb3.0入门图文教程,包括EJB3.0开发Entity.pdf、EJB3.0开发Message Driven Bean.pdf、EJB3.0开发Session Bean.pdf

    EJB3.0中文文档

    EJB3.0中文文档,实例教程.EJB3.0中文文档,实例教程.EJB3.0中文文档,实例教程.EJB3.0中文文档,实例教程.

    EJB3.0开发Message Driven Bean

    EJB3.0开发Message Driven Bean

    EJB3.0开发文档

    EJB3.0开发文档,适合新手,EJB3.0比2.0要开发容易多了,讲的很好

    EJB3.0开发环境配置

    详细的描叙了EJB3.0开发环境配置!

    ejb3.0实例教程

    绍之中,应用实例更是少之又少,所以作者拟写本书,以简单的实例展现 EJB3.0 的开发过程,希望对大家有所帮 助。 EJB3 最激动人心的是 POJO 编程模型,我想对开发人员的影响将是非常大的,因为他降低了开发人员编写 ...

    EJB3.0开发文档+工具

    EJB3.0开发文档+工具 EJB3.0开发文档+工具

    EJB 3.0入门经典 源码

    本书是关于EJB 3.0的专业技术教程,从实用的角度出发,理论联系实际,用9章的篇幅详细讲解了EJB 3.0开发的方法和技巧。  本书内容丰富,讲解由浅入深,全面系统,在讲解EJB 3.0最新开发技术的同时,精心设计了与...

    精通EJB3.0 中文版 3/3

    第二部分重点关注EJB编程的具体内容和过程,向开发者展示了如何使用会话Bean、将会话Bean发布为Web服务、消息驱动Bean;第三部分专注于高级EJB专题;第四部分是附录,收集了EJB组件技术相关的其他内容。

    EJB 3.0从入门到精通

    本书面向EJB 3.0的实际应用开发,通过大量的实例,循序渐进地为读者介绍了有关EJB 3.0开发所涉及的...本书非常适合EJB 3.0初学者和从事EJB项目开发的人员使用,对于开发大型的企业分布式程序是一本非常好的参考书。

    EJB3.0入门经典源代码.part1

    本书是关于EJB 3.0的专业技术教程,从实用的角度出发,理论联系实际,用9章的篇幅详细讲解了EJB 3.0开发的方法和技巧。  本书内容丰富,讲解由浅入深,全面系统,在讲解EJB 3.0最新开发技术的同时,精心设计了与...

    精通EJB3.0 中文版 1/3

    第二部分重点关注EJB编程的具体内容和过程,向开发者展示了如何使用会话Bean、将会话Bean发布为Web服务、消息驱动Bean;第三部分专注于高级EJB专题;第四部分是附录,收集了EJB组件技术相关的其他内容。

    jboss ejb3.0开发介绍

    期待已久的 ejb3.0 今天做了以下,总结了一下,希望对大家有所帮助

    EJB3.0.rar_EJB3.0_ejb_ejb 3.0

    EJB 3.0 开发指南之定时服务非常经典

    ejb 3.0 jar 包 很全 part1

    ejb 3.0 jar 包 很全ejb 3.0 jar 包 很全ejb 3.0 jar 包 很全ejb 3.0 jar 包 很全ejb 3.0 jar 包 很全ejb 3.0 jar 包 很全ejb 3.0 jar 包 很全

    EJB3.0开发Session Bean.rar

    EJB3.0开发Session Bean.rar EJB3.0开发Session Bean.rar

    EJB3.0开发手册

    EJB3.0开发手册

Global site tag (gtag.js) - Google Analytics