Hibernate模板类【理解】【应用】【重点】
来源:互联网 发布:css布局 书籍 知乎 编辑:程序博客网 时间:2024/06/06 14:24
1.HibernateTemplate使用方式
//添加方法public void add(User u){ this.getHibernateTemplate().save(u);}
//删除方法public void delete(User u){ this.getHibernateTemplate().delete(u);}
//修改方法public void update(User u){ this.getHibernateTemplate().update(u);}
//按uuid查询实体public User getByUuid(Long uuid){ return this.getHibernateTemplate().get(User.class,uuid);}
//返回全部数据集合public List<User> getAll(){ return this.getHibernateTemplate().find("from User");}
//返回分页集合数据public List<User> getAll(int pageNum,int prePageNum){ DetachedCriteria dc = DetachedCriteria.forClass(User.class); return this.getHibernateTemplate().findByCriteria(dc, (pageNum-1)*prePageNum, prePageNum);}
2.No Session问题
前提:
1.load方法是延迟加载的(所有存在延迟加载现象的操作)
2.业务逻辑层并没有加载该数据的延迟数据
3.表现层获取时事务已经关闭,所以该对象无法支持延迟加载,造成noSession问题
解决方案:(方案2更灵活)
1.
<set name="mealPojo" inverse="true" lazy="false" fetch="join" cascade="all">
2.Hibernate提供了一个工具方法,用于将一个延迟加载的对象中的数据全部立即加载
Hibernate.initialize(u);
3.将事务开到表现层,添加OpenSessionInViewFilter
<filter> <filter-name>openSessionInView</filter-name> <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> </filter><filter-mapping> <filter-name>openSessionInView</filter-name> <url-pattern>/*</url-pattern></filter-mapping>
说明:
A. OpenSessionInView过滤器必须在struts2的核心过滤器之前开启,否则struts2获取数据时,仍然会出现Session已经关闭的现象
B.如果使用OpenSessionInView过滤器时,出现FlushModel相关的异常,换用如下过滤器,将事务设置为自动事务,而不是只读事务
<filter> <filter-name>openSessionInView</filter-name> <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> <init-param> <param-name>sessionFactoryBeanName</param-name> <param-value>sessionFactory</param-value> </init-param> <init-param> <param-name>singleSession</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>flushMode</param-name> <param-value>AUTO</param-value> </init-param></filter><filter-mapping> <filter-name>openSessionInView</filter-name> <url-pattern>/*</url-pattern></filter-mapping>
0 0
- Hibernate模板类【理解】【应用】【重点】
- IoC【理解】【应用】【重点】
- DI【理解】【应用】【重点】
- hibernate框架的理解重点
- Bean配置(XML)【理解】【应用】【重点】
- AOP(XML)【理解】【应用】【重点】
- AOP(注解)【理解】【应用】【重点】
- SSH整合(XML)【理解】【应用】【重点】
- 理解重点
- 声明式事务(注解)【理解】【应用】【重点】
- hibernate 模板类
- Hibernate几个重点问题
- Elasticsearch 理解重点
- java笔记——第一个servlet重点理解web应用和servlet
- seek and Destroy 重点:arguments,indexOf,fliter 的理解与应用
- 类模板的应用
- hibernate手册的重点页数
- hibernate 之inverse重点复习
- Android 动画-Interpolator和TypeEvaluator
- kubenetes中指定web服务器使用的数据库(集群配置管理方案--ConfigMap)
- Android异步消息处理 (Handler)
- vijos——1214伤心的AsukaNoKaze
- Ajax状态值及状态码
- Hibernate模板类【理解】【应用】【重点】
- 第六次实验上机课(类和对象(物联网))
- nginx+tomcat绑定二级域名,部署多个应用
- 【敏捷开发每日一贴】DoD“完成”的定义
- 用0填充nan值
- sql学习
- windows换行和linux换行的转换
- 位运算加速技巧
- ZOJ 1610 Count the Colors(线段树——区间更新)(成段染色)