xiegs2007 2011-04-25 00:50
浏览 250
已采纳

请教:SpringMVC JPA 事务,单元测试通过,控制器不开启事务,如何解决

我的项目情况如下:
1、使用Springmvc 3.0.5 Hibernate3.5.6 JPA,配置persistence.xml使用mysql;
2、使用Dao、Daosupport,Service、ServiceBean,web.xml中,使用OpenEntityManagerInViewFilter;
3、在使用Junit4做单元测试时,保存数据可以通过,但是控制器中,无法保存数据,错误如下:

--控制器中先执行了一次查询操作,这是操作完成的提示:
DEBUG org.hibernate.loader.Loader:(Loader.java:1966)

  • done entity load DEBUG org.hibernate.jdbc.ConnectionManager:(ConnectionManager.java:427)
  • aggressively releasing JDBC connection

--然后执行另一个保存操作:save--service.save--serviceBean.save--dao.save(entity),出现如下提示:
DEBUG org.hibernate.event.def.AbstractSaveEventListener:(AbstractSaveEventListener.java:327)

  • delaying identity-insert due to no transaction in progress

--问题就在这里,我对第二个操作,前后loger,发现第一个操作完成后,jdbc链接被关闭,而第二个操作,根本不打开连接和事务,请问大侠们,问题在哪里?

  • 写回答

1条回答 默认 最新

  • jep1983 2011-04-25 02:54
    关注

    看不到你的配置文件,不知道是否和我以前遇到的问题类似:

    在主容器中(applicationContext.xml),将Controller的注解排除掉


    /context:component-scan

    而在springMVC配置文件中将Service注解给去掉



    /context:component-scan

    因为spring的context是父子容器,所以会产生冲突,Controller会先进行扫描装配,而此时的Service还没有进行事务的增强处理,得到的将是原样的Service(没有经过事务加强处理,故而没有事务处理能力) ,最后才是applicationContext.xml中的扫描配置进行事务处理。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部