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 的事务管理能力,我们可以有效地解决延迟加载带来的潜在问题,确保应用程序在不同场景下的稳定性和性能表现。 ##### 2.3 国际化和中文支持 对于一个多语言的应用来说,国际化非常重要。本模板提供了...
8. **处理Hibernate延迟加载**:使用`OpenSessionInViewFilter`过滤器,确保Session在整个HTTP请求期间保持打开状态,解决懒加载问题。配置过滤器映射到所有.do请求。 9. **处理只读模式异常**:由于...
7. **懒加载和级联操作**: Hibernate支持对象关系的懒加载,通过`lazy="true"`可以延迟加载关联数据。级联操作允许在一次主对象的操作中处理相关联的对象,如`CascadeType.ALL`表示对关联对象的所有操作都进行级联。...
* 延迟加载(Lazy Loading) * 缓存机制(Cache Mechanism) Ajax技术的主要特点是: * 异步数据交换(Asynchronous Data Transfer) * 客户端验证(Client-side Validation) * 无刷新更新(No-Refresh Update) ...
4. **懒加载异常**:在脱离Session时尝试访问延迟加载属性,会出现“LazyInitializationException”。 5. **对象状态异常**:如 detached(分离)状态的对象试图更新,可能导致“DetachedObjectException”。 二、...
6. **懒加载和代理**:Spring可以帮助处理Hibernate的懒加载问题,通过使用开放Session in View(OSIV)模式,可以确保在HTTP请求结束前,所有延迟加载的对象都能正确加载。同时,Spring还能创建代理对象,使得在...
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 分页...
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的自动...
opensessionInViewFilter是Spring提供的一个过滤器,它用来保证在整个请求过程中开启的Hibernate Session不被关闭,直到视图渲染完毕,从而解决懒加载问题。 16. 架构模型: 课程内容中提到了不同层次的架构模型,...
- **load**:延迟加载对象,如果找不到记录,则返回null。 ##### Hibernate、Ibatis、Jdbc三者的区别 - **Hibernate**:全ORM解决方案,自动管理对象的生命周期。 - **MyBatis (原Ibatis)**:半ORM框架,提供动态...