`
firecool
  • 浏览: 83525 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Spring+Hibernate延迟加载测试基类

    博客分类:
  • java
阅读更多
package cn.com.oneslife;

import junit.framework.TestCase;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.junit.AfterClass;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.orm.hibernate3.SessionFactoryUtils;
import org.springframework.orm.hibernate3.SessionHolder;
import org.springframework.transaction.support.TransactionSynchronizationManager;

public abstract class AbstractTest extends TestCase{

	private static SessionFactory sessionFactory ;
	private static ApplicationContext act;

	public void setUp() throws Exception {
		act = new ClassPathXmlApplicationContext("applicationContext.xml");
		sessionFactory = (SessionFactory) getBean("sessionFactory");
		Session s = sessionFactory.openSession();
		TransactionSynchronizationManager.bindResource(sessionFactory,
				new SessionHolder(s));
	}

	protected static Object getBean(String beanName) {
		return act.getBean(beanName);
	}

	public void tearDown() throws Exception {
		SessionHolder holder = (SessionHolder) TransactionSynchronizationManager
				.getResource(sessionFactory);
		Session s = holder.getSession();
		s.flush();
		TransactionSynchronizationManager.unbindResource(sessionFactory);
		SessionFactoryUtils.closeSession(holder.getSession());
	}
}
分享到:
评论

相关推荐

    spring+hibernate多层web开发eclipse下的开发模板.doc

    结合 Spring 的事务管理能力,我们可以有效地解决延迟加载带来的潜在问题,确保应用程序在不同场景下的稳定性和性能表现。 ##### 2.3 国际化和中文支持 对于一个多语言的应用来说,国际化非常重要。本模板提供了...

    Struts+Hibernate+Spring的整合方法

    8. **处理Hibernate延迟加载**:使用`OpenSessionInViewFilter`过滤器,确保Session在整个HTTP请求期间保持打开状态,解决懒加载问题。配置过滤器映射到所有.do请求。 9. **处理只读模式异常**:由于...

    spring-orm-hibernate4源码

    7. **懒加载和级联操作**: Hibernate支持对象关系的懒加载,通过`lazy="true"`可以延迟加载关联数据。级联操作允许在一次主对象的操作中处理相关联的对象,如`CascadeType.ALL`表示对关联对象的所有操作都进行级联。...

    struts、spring、hibernate、ajax、JQuery原理讲解.doc

    * 延迟加载(Lazy Loading) * 缓存机制(Cache Mechanism) Ajax技术的主要特点是: * 异步数据交换(Asynchronous Data Transfer) * 客户端验证(Client-side Validation) * 无刷新更新(No-Refresh Update) ...

    hibernate,struts,spring 常见错误信息

    4. **懒加载异常**:在脱离Session时尝试访问延迟加载属性,会出现“LazyInitializationException”。 5. **对象状态异常**:如 detached(分离)状态的对象试图更新,可能导致“DetachedObjectException”。 二、...

    跟我学Spring3(8.2)对ORM的支持之集成Hibe

    6. **懒加载和代理**:Spring可以帮助处理Hibernate的懒加载问题,通过使用开放Session in View(OSIV)模式,可以确保在HTTP请求结束前,所有延迟加载的对象都能正确加载。同时,Spring还能创建代理对象,使得在...

    Spring.3.x企业应用开发实战(完整版).part2

    12.2.8 延迟加载的问题 12.3 在Spring中使用myBatis 12.3.1 配置SqlMapClient 12.3.2 在Spring配置myBatis 12.3.3 编写myBatis的DAO 12.5 DAO层设计 12.5.1 DAO基类的设计 12.5.2 查询接口方法的设计 12.5.3 分页...

    Spring3.x企业应用开发实战(完整版) part1

    12.2.8 延迟加载的问题 12.3 在Spring中使用myBatis 12.3.1 配置SqlMapClient 12.3.2 在Spring配置myBatis 12.3.3 编写myBatis的DAO 12.5 DAO层设计 12.5.1 DAO基类的设计 12.5.2 查询接口方法的设计 12.5.3 分页...

    三大框架整合常见问题

    在使用Hibernate时,经常会出现`LazyInitializationException`异常,这主要是因为Hibernate的延迟加载特性导致的。 **具体问题:** - 在上述代码片段中,使用`OpenSessionInViewFilter`过滤器来实现Session的自动...

    Spring学习笔记

    opensessionInViewFilter是Spring提供的一个过滤器,它用来保证在整个请求过程中开启的Hibernate Session不被关闭,直到视图渲染完毕,从而解决懒加载问题。 16. 架构模型: 课程内容中提到了不同层次的架构模型,...

    java面试知识

    - **load**:延迟加载对象,如果找不到记录,则返回null。 ##### Hibernate、Ibatis、Jdbc三者的区别 - **Hibernate**:全ORM解决方案,自动管理对象的生命周期。 - **MyBatis (原Ibatis)**:半ORM框架,提供动态...

Global site tag (gtag.js) - Google Analytics