在service用了@transactional还是出现懒加载异常

nz724 2015-04-08 12:32:19
我在用SSH框架时,已经给某个servicebean类加了@transactional,类里的方法调用DAO的方法得到一个对象,这个对象是多对一关联的多方(只用了单向关联,一的那方没有关联),调用这个方法获取一方的对象时就报了懒加载那个异常,说session已经关闭而对象没有真正创建无法访问。

请问用了@transactional注释的方法并不会开启session吗?我这个问题除了关闭懒加载还能怎么解决呢?
而且我在试验的时候无意中发现如果用createquery的分页查询居然就不会有问题唉(如果没用调用setFirstResult和setMaxResults就出上面的异常)。这又是为啥
...全文
242 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
nz724 2015-04-08
  • 打赏
  • 举报
回复
引用 1 楼 u013762572 的回复:
不是的啊,使用的@transactional只是加入事物,并不是解决你的lazy异常的。。。 http://justplayoop1.iteye.com/blog/1495888
明白点了,但那文章里的配置和我的有点不一样 filter> <filter-name>struts2</filter-name> <filter-class> com.iman.nrms.opm.web.common.FilterDispatcher </filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> </filter> 我没有配这个,但我配了下面的,是不是用下面替换上面的,其他不变? <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter>
microhex 2015-04-08
  • 打赏
  • 举报
回复
不是的啊,使用的@transactional只是加入事物,并不是解决你的lazy异常的。。。 http://justplayoop1.iteye.com/blog/1495888
microhex 2015-04-08
  • 打赏
  • 举报
回复
引用 2 楼 nz724 的回复:
[quote=引用 1 楼 u013762572 的回复:] 不是的啊,使用的@transactional只是加入事物,并不是解决你的lazy异常的。。。 http://justplayoop1.iteye.com/blog/1495888
明白点了,但那文章里的配置和我的有点不一样 filter> <filter-name>struts2</filter-name> <filter-class> com.iman.nrms.opm.web.common.FilterDispatcher </filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> </filter> 我没有配这个,但我配了下面的,是不是用下面替换上面的,其他不变? <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> [/quote] 是的,只是那篇文章用得一种不是非常常用的配置方式,一般都是你这种配置的。。。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧