我最熟悉的就是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返回数据的有效性,也是比较头疼的一件事
虽然理论上 可以通过数据库的键值约束 来避免这种情况
但 有时候 可能不能完全避免这种情况,做过项目的朋友可能都会有所感触!
代理,用还是不用? 是个问题!
分享到:
相关推荐
通过理解O/R Mapping原理、学习如何将Java类映射到数据库表、处理对象间的关系,以及了解Hibernate提供的性能优化策略,开发者能够更高效、更优雅地构建基于JSP的Java Web应用程序。Hibernate不仅简化了数据库操作,...
O/R Mapping(对象关系映射)是将数据库中的表格数据映射到Java对象的过程。通过Hibernate,开发者可以使用面向对象的方式来操作数据库,而无需关心底层SQL语句。O/R Mapping解决了对象模型和关系模型之间的鸿沟,...
O/R Mapping(对象关系映射)解决了对象模型与关系数据库之间的转换问题,使得开发者可以使用面向对象的方式来操作数据库。Hibernate通过提供API和XML映射文件,实现了对象到关系数据的透明转换,简化了开发流程。 ...
O/R Mapping(对象关系映射)是解决对象世界与关系数据库世界之间鸿沟的技术。通过O/R Mapping,开发者可以在对象层进行编程,而无需关心底层数据库的具体操作。它允许我们在面向对象的环境中处理关系数据,提高了...
以上内容涵盖了Java面试中涉及的Spring AOP、Struts、Hibernate和Spring框架的相关知识点,以及日志记录、事务管理和O/R Mapping等基础概念。理解并熟练掌握这些知识对于Java开发者来说至关重要。
在本系列中,我们关注的是持久化类,这些类用于表示数据库中的记录,并通过O/R Mapping(对象/关系映射)操作与数据库交互。例如,`Customer`类就是一个简单的持久化类,它包含了`Id`、`FirstName`和`LastName`三个...
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 ...
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 ...
### Author:王伟### E-mail:===========================#####Easydao具有以下特征:1.O/R mapping不用设置xml,零配置便于维护2.不需要了解JDBC的知识3.SQL语句和java代码的分离4.可以自动生成SQL语句5.接口和实现...
除此之外,Spring 2.x还支持多种数据访问集成,包括JDBC、ORM框架(如Hibernate、MyBatis)和O/R Mapping。通过Spring的DAO支持和事务模板,开发者可以轻松地处理数据库操作,同时保持良好的事务一致性。 Spring ...
Hibernate是一个流行的O/R Mapping(对象关系映射)框架,它封装了JDBC,使得开发者可以更方便地操作数据库。 I18N(Internationalization)代表国际化,表示软件设计时考虑了多语言支持。JCA(Java Cryptography ...
8. 其他技术:文档中提到了“Hibernate”,这是一个对象关系映射(O/R Mapping)框架,简化了Java应用中使用数据库的过程。还提到了“Java Cryptography Architecture”(JCA),这是Java平台上用来构建和管理加密...
3. **数据访问集成**:Spring提供了对各种数据库的支持,包括JDBC、ORM(Hibernate、JPA)和O/R Mapping。3.2.4.RELEASE增强了对JPA2.1的支持,提升了数据访问的效率和灵活性。 4. **Web应用支持**:Spring MVC是...
3. **配置Hibernate**:创建O/R mapping文件(`.hbm.xml`),映射数据库表到Java实体,并生成相应的Java类。 4. **配置Spring**:编写`applicationContext.xml`,配置数据源、事务管理器、DAO和Service Bean。 5. **...
4. **数据访问**:Spring提供了对各种数据库访问技术的支持,包括JDBC、ORM(如Hibernate、MyBatis)和O/R Mapping。Spring JDBC模块简化了数据库操作,而Spring Data项目则提供了与多种数据存储的集成,使得CRUD...
Spring提供了对多种数据库访问技术的支持,如JDBC、ORM框架(如Hibernate、MyBatis)和O/R Mapping。通过数据源、事务管理器和DAO支持,Spring简化了数据访问层的编写工作。 五、事务管理 Spring提供了一种声明式...
Spring 2.0增强了对各种数据访问技术的支持,如JDBC、ORM框架(Hibernate、JPA)和O/R Mapping。提供了声明式事务管理,使得事务处理更加简单。 ### 6. **MVC框架** Spring 2.0引入了Spring MVC,这是一个轻量级的...
Spring 2.5.6对各种数据访问技术如JDBC、ORM(Hibernate、JPA)和O/R Mapping提供了良好的支持。它提供了一种统一的接口,降低了数据访问层与业务逻辑层之间的耦合。 七、MVC框架 Spring MVC是Spring框架的一个模块...