你这是在单元测试啊,单元测试的话
OpenSessionInViewFilter不起作用
也就是说session用完一次就自动 关闭了,并不能保证像WEB那样直到请求结束才关闭
你的级联加载策略又是慢加载
所以就报空了
如果lazy="proxy"改成
lazy="false"
应该是没问题 的
web.xml
[code="java"]
OpenSessionInViewFilter
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
sessionFactoryBeanName
SessionFactory
singleSession
true
OpenSessionInViewFilter
/*
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*
[/code]
映射:
[code="java"]
index
[/code]
DAO:
[code="java"]
public BulletinIndex findIndexById(String id){
return (BulletinIndex) sessionFactory.getCurrentSession().load(BulletinIndex.class, id);
};
[/code]
看了不少博文,问题没有解决。如果不用load而直接写一个不带关联对象的查询不会报错,但执行出来的时候hibernate会添加上另一个关联对象的查询。