知识大全 Hibernate3的DetachedCriteria支持[2]
Posted 知
篇首语:积极思考造成积极人生,消极思考造成消极人生。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Hibernate3的DetachedCriteria支持[2]相关的知识,希望对你有一定的参考价值。
Hibernate3的DetachedCriteria支持[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
回调方法提供了session作为参数 有了session 就可以自由的使用Hibernate API编程了 使用了spring的之后 代码修改如下
web层代码
java代码
DetachedCriteria detachedCriteria = DetachedCriteria forClass(Department class); detachedCriteria createAlias( employees e ) add(Restrictions eq( name department )) add(Restrictions gt(( e age ) new Integer( ))); departmentManager findByCriteria(detachedCriteria);构造detachedCriteria 作为参数传递给departmentManager
业务层代码使用spring DepartmentManager的findByCriteria如下
java代码
public List findByCriteria(final DetachedCriteria detachedCriteria) return (List) getHibernateTemplate() execute(new HibernateCallback() public Object doInHibernate(Session session) throws HibernateException Criteria criteria = detachedCriteria getExecutableCriteria(session); return criteria list(); );实际上也就是
java代码
Criteria criteria = detachedCriteria getExecutableCriteria(session); return criteria list();而已
但是该程序代码执行 会抛出强制类型转换异常!
我跟踪了一下spring和Hibernate源代码 原因如下
spring的HibernateTemplate的execute方法提供的回调接口具有Session作为参数 但是实际上 默认情况下 HibernateTemplate传递给回调接口的session并不是 hibernate impl SessionImpl类 而是SessionImpl类的一个Proxy类 之所以替换成为一个Proxy类 HibernateTemplate的注释说明 Proxy提供了一些额外的功能 包括自动设置Cachable Transaction的超时时间 Session资源的更积极的关闭等等
java代码
private boolean exposeNativeSession = false;execute方法内部
Session sessionToExpose = (exposeNativeSession ? session : createSessionProxy(session));但是遗憾的是 Hibernate的DetachedCriteria的setExecutableCriteria方法却要求将session参数强制转为SessionImpl 但是spring传过来的却是一个Proxy类 因此就报错了
java代码
public Criteria getExecutableCriteria(Session session) impl setSession( (SessionImpl) session ); // 要求SessionImpl Spring传递的是Proxy return impl; cha138/Article/program/Java/ky/201311/29141相关参考
Hibernate3.X实践总结 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Hibernat
知识大全 Hibernate3的DetachedCriteria支持[1]
Hibernate3的DetachedCriteria支持[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起
知识大全 Hibernate3的DetachedCriteria支持[3]
Hibernate3的DetachedCriteria支持[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起
Hibernate3新特性及发展趋 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Hiberna
hibernate3.0DTD定义路径问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 大家在
开源框架Hibernate3的新特性以及发展趋势 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
整合Hibernate3与JBOSS3.2.X 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 前
配置ehcachexml文件放到classpath下 <?xmlversion=encoding=GBK?> <e
知识大全 用Hibernate3.1实现XML和数据库的同步
用Hibernate3.1实现XML和数据库的同步 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!