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中,需要的时候再查询出来。
分享到:
相关推荐
韩顺平.2011版.hibernate笔记.zip
hibernate,java,技术开发文档信息详解,希望对你有所帮助
struts笔记 hibernate笔记
韩顺平很全的Hibernate笔记!
韩顺平的hibernate笔记资料,详细记录讲课的内容和整理的图像资料
Hibernate笔记
自上而下的依赖,单向依赖,层与层之间最好依赖抽象
web开发里面的三大框架之一,完整版的Hibernate介绍和经验总结,希望对大家有帮助。
hibernate笔记.pdf
hibernate深度讲解:word笔记+pdf讲义+源码+分析图+相关jar等资料。知识点很全面,涵盖所有
留言管理程序_Struts + Spring + Hibernate笔记留言管理程序_Struts + Spring + Hibernate笔记