01之间穿梭

程序员统一的信仰则是:计算机很神奇很好玩,编代码更好玩

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1、使用spring控制事务

2、使用session.update(obj)执行更新

spring事务配置:

<bean id="transactionBese" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" lazy-init="true" abstract="true">
		<property name="transactionManager" ref="transactionManager"/>
		<property name="transactionAttributes">
			<props>
				<prop key="add*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="edit*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="del*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="get*">PROPAGATION_NEVER</prop>
			</props>
		</property>
	</bean>

  

service方法:

public void enableJobtemplates(List<PlanJobtemplate> jobts) throws Exception {
		dao.updateAll(jobts);
	}

 

dao方法:

public void updateAll(final List list) throws Exception {
		getHibernateTemplate().execute(new HibernateCallback() {
			@Override
			public Object doInHibernate(Session session) throws HibernateException {
				for (Object obj : list) {
					session.update(obj);
				}
				return null;
			}
		});
	}

Controller方法:

@RequestMapping("/jobtenable")
	public void EnableJobT(HttpServletRequest request,HttpServletResponse response) {
		try {
			List<PlanJobtemplate> jobts = planService.getJobTByIds(request.getParameterValues("id"));
			
			for(PlanJobtemplate jobt:jobts){
				jobt.setState(EnumTools.UState.已禁用.ordinal());
			}			
			planService.editJobtemplates(jobts);
			utilService.printJsonResult(true, "操作成功!", "no", response);
		} catch (Exception e) {
			e.printStackTrace();
			utilService.printJsonResult(false, "操作失败!", "no", response);
		}
	}

  

执行结果:执行过程中没报错,数据也没更新。

 

修改service方法:

public void editJobtemplates(List<PlanJobtemplate> jobts) throws Exception {
		dao.updateAll(jobts);
	}

  

执行结果:成功更新。

原因:如果使用spring控制事务,请注意配置是否正确,如果不是使用spring控制事务,在session.update后加一句session.flush

 

 

一般这种问题大概有两种原因
1.事务没有提交,下面已经说了。。
2.就是缓存问题建议在session.update后加一句session.flush(强制缓存中数据与数据库中同步)

 

posted on 2015-03-23 11:32  01之间穿梭  阅读(548)  评论(0编辑  收藏  举报