1, hibernate中有自动的级联删除,在表定义的xml文件中有cascade属性
2, hibernate实现的链接查询默认是在使用的时候才进行的,例如查询到user下面的customer属性,只有用到user.customer.name时hibernate才会执行数据的查询。
3,hibernate的配置文件中的hbm2ddl.auto属性表示在执行程序时对数据库模式是采取更新还是采取创建模式。
4,HQL语言是面向对象的查询,和SQL类似,但面向的是已经定义好的实体bean。from语句后不是跟的表明,而是对象名。
5,hibernate也可以使用存储过程,只是麻烦了点,自己没实现过。要在配置文件中和配置sql查询语句类似的配置一下,再把callable属性设为TRUE。
6.hibernateTemplate中的属性若为null,则bean中各种属性的类型可设为对象型。例如int为Integer,date为Date型。以免出现空置时会引发异常。
7.hibeernate中的many-to-one属性中也有lazy属性。现在还没研究清楚,但是若不设置lazy=FALSE则不能取出子属性中的数据。
8.在父对象的class属性上设置lazy=true。则子对象查询时不会将父对象查询出来。但是lazy是在session范围内有效。若session关闭,则不能取出子对象,会报lazyinitialize的错误。
9.解决spring和hibernate集成时的lazy属性使用方法
在HIbernateTemplate中我们可以看到一个核心的方法:
public Object execute(HibernateCallback action, boolean exposeNativeSession) throws DataAccessException { ………… ………… 其中finally的定义为 finally { ………… else { // Never use deferred close for an explicitly new Session. if (isAlwaysUseNewSession()) { SessionFactoryUtils.closeSession(session); } else { SessionFactoryUtils.closeSessionOrRegisterDeferredClose(session, getSessionFactory()); } 从这里我们可以看到如果isAlwaysUseNewSession()为true的话,session将会在方法执行完之后关闭,那么我们知道 它的find(String ...)在调用CallBack的时候是这样实现的: execute(new HibernateCallBack(){...},true); 因此,如果我们使用@OneToMany的话,设置FeatchType.LAZY在调用One.getMany()欲返回集合的话,会因为session 关闭而出现错误,当然知道了这一点解决起来就比较的简单了: 我们可以使用getHibernateTemplate().execute(new HibernateCallBack(){});因为在HibernateTemplate中 exposeNativeSession的默认值为false,当然,如果不放心的话,可以显式的调用: execute(new HibernateCallBack(){},false);
若是在web项目中,则可以在web.xml中加入
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
加入此拦截器后,spring会将lazy属性的子类的id存放在一个handler中,需要的时候再查询出来。
分享到:
相关推荐
在深入探讨《hibernate笔记.txt》所提及的关键知识点前,我们先来解析一下标题和描述中的核心概念。“自上而下的依赖,单向依赖,层与层之间最好依赖抽象”,这一描述实际上触及了软件架构设计中的关键原则,特别是...
《韩顺平.2011版.hibernate笔记》是一份针对Hibernate框架的详细学习资料,由知名IT讲师韩顺平在2011年编撰而成。Hibernate是Java开发领域中广泛使用的对象关系映射(ORM)框架,它极大地简化了数据库操作,使开发者...
【传智播客 Hibernate 笔记】是一份深入学习 Hibernate ORM 框架的资源集合,包括了 word 笔记、pdf 讲义、源代码以及相关分析图表和 jar 包,旨在帮助开发者全面理解并掌握 Hibernate 的核心概念与实际应用。...
《Hibernate笔记完整版》 在Web开发领域,Hibernate作为三大框架之一,扮演着至关重要的角色。本文将全面介绍Hibernate,包括其数据持久化的概念、优缺点对比,以及Hibernate的核心概念和编程步骤。 对象持久化是...
《韩顺平Hibernate笔记》是一份详尽记录了著名IT讲师韩顺平关于Hibernate框架讲解内容的资料集合。Hibernate作为Java领域中广泛使用的对象关系映射(ORM)框架,极大地简化了数据库操作,使得开发者可以更加专注于...
《韩顺平Hibernate笔记》是一份详尽的关于Hibernate框架的学习资料,由知名IT教育专家韩顺平编撰。Hibernate是Java开发中的一个强大的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互,使得开发者可以...
Hibernate 是一个开源的对象关系映射(ORM)框架,它允许Java开发者使用面向对象的方式来操作数据库。这个框架将数据库操作转化为对Java对象的操作,简化了数据持久化的复杂度。以下是对Hibernate的一些关键知识点的...
### 尚学堂Hibernate笔记知识点详解 #### 一、项目初始化与环境搭建 1. **新建项目**:在IDE中创建一个新的Java项目。 2. **构建用户库并添加所需的JAR包**: - 右键点击项目 -> `Build Path` -> `Configure ...
培训期间的hibernate笔记 hibernate笔记 达内培训
hibernate笔记.pdf
总结起来,"韩顺平hibernate笔记及图解"涵盖了Hibernate的基础概念、核心组件、对象关系映射、查询机制、事务管理以及实体间的关系等内容。通过学习这份笔记,开发者能深入理解Hibernate的工作原理和使用技巧,提升...
【Spring+Hibernate笔记】这篇文档主要涵盖了在Web开发中使用Spring和Hibernate的基础知识。首先,我们从Spring的Hello World开始,了解如何配置JSP运行环境。 1.1. 配置JSP运行环境是开发Web应用的第一步。这包括...
【马士兵Hibernate笔记】是一份面向初学者的教程,旨在帮助读者深入了解Hibernate这一持久化框架。Hibernate是一个基于Java的ORM(对象关系映射)工具,它允许开发者将数据库操作转换为面向对象的方式,从而简化了...