项目采用的是Struts2+Spring+Hibernate 搭建的,现在遇到了一个问题,在一个需要向数据库中插入一实体信息的功能中,在页面输入输入实体的信息,提交后在Action中调用业务层的方法,然后业务层再调用Dao层方法向数据库中插入数据,现在是执行完后数据库中没有插入信息,也没有报错。而在测试类中通过如下方法
ApplicationContext ctx = new ClassPathXmlApplicationContext( "spring/applicationContext*.xml"); IServiceMgrBiz serviceMgrBiz = (IServiceMgrBiz)ctx.getBean("serviceMgrBiz"); Service service = new Service(); service.setServiceName("基础数据"); service.setServiceDescription("基础数据"); serviceMgrBiz.serviceRegister(service);
这样直接调用却可以插入今数据库,请问这是什么原因呢?
如果在Action能获取到IServiceMgrBiz的实例,插入信息不成功有可能就是事务的问题。
业务层IServiceMgrBiz需要让Spring管理。
业务层IServiceMgrBiz的serviceRegister()方法需要Spring提供的事务。