`

O/R Mapping中的代理

阅读更多
我最熟悉的就是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返回数据的有效性,也是比较头疼的一件事
 
虽然理论上 可以通过数据库的键值约束 来避免这种情况
但 有时候 可能不能完全避免这种情况,做过项目的朋友可能都会有所感触!
 
代理,用还是不用? 是个问题!


分享到:
评论

相关推荐

    jsp中Hibernate资料

    通过理解O/R Mapping原理、学习如何将Java类映射到数据库表、处理对象间的关系,以及了解Hibernate提供的性能优化策略,开发者能够更高效、更优雅地构建基于JSP的Java Web应用程序。Hibernate不仅简化了数据库操作,...

    尚学堂hibernate学习笔记(原版整理)

    O/R Mapping(对象关系映射)是解决对象世界与关系数据库世界之间鸿沟的技术。通过O/R Mapping,开发者可以在对象层进行编程,而无需关心底层数据库的具体操作。它允许我们在面向对象的环境中处理关系数据,提高了...

    JAVA面试题SSH重点.pdf

    以上内容涵盖了Java面试中涉及的Spring AOP、Struts、Hibernate和Spring框架的相关知识点,以及日志记录、事务管理和O/R Mapping等基础概念。理解并熟练掌握这些知识对于Java开发者来说至关重要。

    ap6212a0_a33_sc3817r_神舟验证版本_借用nvram_ap6210这个配置文件_20170626_1834没有外层目录.7z

    R:\wyb\ap6212a0_a33_sc3817r\android\device\softwinner\astar-y3\overlay\frameworks\base\core\res\res\values\config.xml <!-- List of regexpressions describing the interface (if any) that represent ...

    ap6212a0_a33_sc3817r_服务器验证通过_bt已经通了_wifi需要修改配置_需要再次验证_20170626_1549.7z

    R:\wyb\ap6212a0_a33_sc3817r\android\device\softwinner\astar-y3\overlay\frameworks\base\core\res\res\values\config.xml <!-- List of regexpressions describing the interface (if any) that represent ...

    easydao:简单易用的DAO框架,非侵入式的api,可以与Hibernate、SpringJdbc等框架很好的集成

    ### Author:王伟### E-mail:===========================#####Easydao具有以下特征:1.O/R mapping不用设置xml,零配置便于维护2.不需要了解JDBC的知识3.SQL语句和java代码的分离4.可以自动生成SQL语句5.接口和实现...

    精通Spring2.x企业应用开发详解源代码

    除此之外,Spring 2.x还支持多种数据访问集成,包括JDBC、ORM框架(如Hibernate、MyBatis)和O/R Mapping。通过Spring的DAO支持和事务模板,开发者可以轻松地处理数据库操作,同时保持良好的事务一致性。 Spring ...

    java常用单词.pdf

    Hibernate是一个流行的O/R Mapping(对象关系映射)框架,它封装了JDBC,使得开发者可以更方便地操作数据库。 I18N(Internationalization)代表国际化,表示软件设计时考虑了多语言支持。JCA(Java Cryptography ...

    编程语言java常用单词.pdf

    8. 其他技术:文档中提到了“Hibernate”,这是一个对象关系映射(O/R Mapping)框架,简化了Java应用中使用数据库的过程。还提到了“Java Cryptography Architecture”(JCA),这是Java平台上用来构建和管理加密...

    spring-framework-3.2.4.RELEASE+aopalliance-alphal

    3. **数据访问集成**:Spring提供了对各种数据库的支持,包括JDBC、ORM(Hibernate、JPA)和O/R Mapping。3.2.4.RELEASE增强了对JPA2.1的支持,提升了数据访问的效率和灵活性。 4. **Web应用支持**:Spring MVC是...

    Spring + Hibernate + Struts

    3. **配置Hibernate**:创建O/R mapping文件(`.hbm.xml`),映射数据库表到Java实体,并生成相应的Java类。 4. **配置Spring**:编写`applicationContext.xml`,配置数据源、事务管理器、DAO和Service Bean。 5. **...

    达内-12 spring

    4. **数据访问**:Spring提供了对各种数据库访问技术的支持,包括JDBC、ORM(如Hibernate、MyBatis)和O/R Mapping。Spring JDBC模块简化了数据库操作,而Spring Data项目则提供了与多种数据存储的集成,使得CRUD...

    Spring参考手册

    Spring提供了对多种数据库访问技术的支持,如JDBC、ORM框架(如Hibernate、MyBatis)和O/R Mapping。通过数据源、事务管理器和DAO支持,Spring简化了数据访问层的编写工作。 五、事务管理 Spring提供了一种声明式...

    Spring 2.0核心技术学习笔记总结

    Spring 2.0增强了对各种数据访问技术的支持,如JDBC、ORM框架(Hibernate、JPA)和O/R Mapping。提供了声明式事务管理,使得事务处理更加简单。 ### 6. **MVC框架** Spring 2.0引入了Spring MVC,这是一个轻量级的...

    spring-2.5.6源码

    Spring 2.5.6对各种数据访问技术如JDBC、ORM(Hibernate、JPA)和O/R Mapping提供了良好的支持。它提供了一种统一的接口,降低了数据访问层与业务逻辑层之间的耦合。 七、MVC框架 Spring MVC是Spring框架的一个模块...

Global site tag (gtag.js) - Google Analytics