当Dao层继承了HibernateDaoSupport,使用底层SQL语句,session获取的方法,以及解决关联查询no session的问题
来源:互联网 发布:qq旋风 知乎 编辑:程序博客网 时间:2024/06/05 15:41
一、获取session的过程
Session session=this.getSessionFactory().getCurrentSession();
二、在web.xml文件中要配置一个过滤器,不然会报异常Could not obtain transaction-synchronized Session for current thread
<filter>
<filter-name>openSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>openSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
同时,该配置也可以解决no session问题,所谓no session问题,就是在页面中使用关联查询,即${linkman.coustomer.cname},由于linkman表只有cid,所以会根据cid查询coustomer表得到cname,但是dao层操作完,session会自动关闭,出现no session,所以要配置来延迟关闭session。
解决no session的第二种方法,可以在配置一对多关系时,设置lazsy属性。
如:在实体类categorySecond(一)中的Set<Product> products(多)
<set name="products" lazy="false">
<key column="csid"></key>
<one-to-many class="cn.itcast.store.product.vo.Product"/>
</set>
设置lazy为false,表示延迟session的关闭,这样在页面中就可以使用关联查询${category.categorySeconds},我们查询的category表没有categorySeconds的信息,但他会再次查询数据库,根据cid查询出所属的categorySeconds的信息。这是一方处理no session。
同样,多方的lazy配置
<many-to-one name="categorySecond"lazy="false" class="cn.itcast.store.cagetorysecond.vo.CategorySecond" column="csid"> </many-to-one>
在页面中使用关联查询,即${categorySecond.category.cname},由于categorySecond表只有cid,所以会根据cid查询category表得到cname,
- 当Dao层继承了HibernateDaoSupport,使用底层SQL语句,session获取的方法,以及解决关联查询no session的问题
- 继承HibernateDaoSupport后,获得session 并使用session操作sql的方法
- 继承了HibernateDaoSupport的DAO
- <?>关于spring里HibernateDaoSupport的关于session的获取方法
- 数据库View配合Dao层框架解决表1:1和1:n时的关联查询SQL生成问题
- 关于DAO层的sessionFactory注入和是否继承HibernateDAOSupport
- 使用Hibernate.initialize解决no session的延迟加载问题
- 使用Hibernate.initialize解决no session的延迟加载问题
- no session问题的产生与解决
- 有关no Session问题的解决
- 解决no session or session was closed的问题
- Hibernate延迟加载 或 no session or session was closed 问题的解决(OpenSessionInViewFilter使用)
- HibernateTemplate 和HibernateDaoSupport的session
- HibernateTemplate 和HibernateDaoSupport的session
- 解决异步获取user session的方法
- 解决Quartz定时器中查询懒加载数据no session的问题
- SSH中继承HibernateDaoSupport 的通用Dao
- HibernateDaoSupport 类session未关闭导致的连接泄露问题
- 简单但实战性超强的composer笔记
- 28个常见的“蓝屏”故障代码的排查信息
- 存储过程的通过其他的表的查询
- js字符串和数组之间的转换
- 有没有获取积分的方法
- 当Dao层继承了HibernateDaoSupport,使用底层SQL语句,session获取的方法,以及解决关联查询no session的问题
- Hybird-后台接口和后台管理界面
- POJ 2112 Optimal Milking 二分+最大流
- C语言的内存管理
- fork 与 vfork 区别详解及代码演示
- 使用标签配合EL表达式遍历数组
- 开博啦
- java面试基础题之一
- 打开一个网站,加载顺序是什么?