将遗留Hibernate应用程序迁移到OpenJPA和EJB 3.0(二) - 编程入门网
" table="T_USER_GROUP">
<key column="USER_TID"/>
<many-to-many column="GROUP_TID" class="Group"/>
</set>
</class>
将遗留Hibernate应用程序迁移到OpenJPA和EJB 3.0(二)(5)时间:2011-09-18 Donald VinesOpenJPA 约定 在 OpenJPA 中,多对多关系按照以下方式进行映射: 在所有者/子对象中,使用多对多元素和嵌套连接表元素指定如何创建关系。您还将 id 与嵌套列元素 一起使用,以指定连接表引用的主键名称。 在非所有者/父对象中,将多对多元素与 mapped-by 属性一起使用,以引用声明连接表的类中的属性 。(连接表包含创建关系的所有信息。您还需要通过 id 元素创建主键。) 映射 18. 多对多关系(OpenJPA XML 映射)
3. 延迟初始化 可以将延迟初始化应用到任何字段,但是它经常与一对多或多对多关系一起使用,在读取父对象时, 您还可以控制是否需要数据库返回所有子对象。 为进一步阐述此概念,请考虑使用从 A 到 B 的一对多或多对多关系。如果在该关系中将 fetch 设置 为 LAZY,则从数据库读取 A 将不能从该数据库读取 B,直到代码尝试遍历从 A 到 B 的关系。另一方面 ,如果将 fetch 设置为 EAGER,则从数据库读取 A 也可以从该数据库读取依赖的 B 对象。 在使用 LAZY 或 EAGER 的 fetch 定义关系时,请务必小心,尤其是在按照一般模式,EJB 层将分离 实体返回到 Web 层并且 Web 层访问该数据以呈现视图时更要小心。使用 LAZY 加载,Web 层可以没有呈 现视图必需的依赖对象。另一方面,您不能使用 EAGER 直接加载所有关系,因为每次返回的信息比必要 信息多。 原因在于您必须使用满足业务需求的适当获取策略定制域模型。如果用例需要父对象和子对象,则使 用 EAGER 加载。如果用例不需要子对象,则使用 LAZY 加载。 对象模型 将遗留Hibernate应用程序迁移到OpenJPA和EJB 3.0(二)(6)时间:2011-09-18 Donald Vines映射 19. 延迟初始化 (POJO)
Hibernate 约定 在 Hibernate 中,缺省值是用于集合的延迟初始化,它实现一对多或多对多关系。要 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |