O/R Mapping中的代理

王朝java/jsp·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

我最熟悉的就是O/R Mapping框架就是OJB,现在一般的这类框架都支持代理方式,以便进行Lazying-Loading,但是代理存在一个不太好的问题。比如说一个User有一个外键关联指向Department,在O/R Mapping框架中最常用的方式就是如下所示,

class User

{

private IDepartment department;

//定义一个IDepartment接口

public void setDepartment(IDepartment r_Department)

{

department=r_Department;

}

public IDepartment

}

使用user.getDepartment()得到IDepartment的一个实现。通常可能用CGLIB支持,如果不使用代理,可能就是IDepartment的实现Department了。

如果User所指向的Department外键不存在,在不用代理的情况下

getDepartment()会返回null

而使用代理无论如何都不会返回null.

在这种情况下 还需要再判断一次 department返回数据的有效性,也是比较头疼的一件事

虽然理论上 可以通过数据库的键值约束 来避免这种情况

但 有时候 可能不能完全避免这种情况,做过项目的朋友可能都会有所感触!

代理,用还是不用? 是个问题!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航