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;
}