springmvc 的controller层用了@Transcational是没有效果的,所以在进行懒加载时会报错 no session or session was closed,这是要么把逻辑写到Dao里头,要么设置成不懒加载,不过我用了第三个方法,就是在取数据时用下一些空的操作,把你要的数据先查出来,在事务的外面就可以很好的用了,不会报错
例如:
@Transactional
public UserGroup findById(int id) {
UserGroup ug=entitymanager.find(UserGroup.class,id);
ug.getRoleSetsByUserGroupId().size(); //避免取RoleSet时懒加载出错
return ug;
}
本文介绍在SpringMVC框架中Controller层使用@Transactional注解时遇到的懒加载问题及解决方案。通过在查询时执行空操作来避免懒加载错误,确保在事务外部正确使用数据。
6153

被折叠的 条评论
为什么被折叠?



