@Transactional(rollbackFor=Exception.class,propagation=Propagation.REQUIRED)
@UpdateSingleCache(namespace = NAMESPACE,expiration = 0)
private void operatorAccountBalance(long businessId,
@ParameterDataUpdateContent @ParameterValueKeyProvider 
Account account,double money,Date date,
long operatorId, int operatorModel) throws Exception{
long start = System.currentTimeMillis();
AccountUtil.validateAccount(account);
account.setLastBalance(account.getBalance());
double newAccountBalance = 0.00;
//判断账户余额操作模式:当前仅仅提供加或者减
if(operatorModel == 1){
newAccountBalance = Arith.add(account.getBalance(), money);
}else if(operatorModel == -1){
if(money > account.getBalance()){
throw new BaseException(PayServiceResponse.BALANCE_LACK);
}else {
newAccountBalance = Arith.sub(account.getBalance(), money);
}
}

account.setBalance(newAccountBalance);
account.setModifyTime(date);
account.setModifyOperatorId(operatorId);
account.setOldVersion(account.getVersion());
account.setVersion(accountDao.queryVersion());
account.setIdentifying(AccountUtil.encryptAccount(account));
int returnValue  = accountDao.updateAccountBalance(account);
if(returnValue == 1){
operatorFundFlow(account,money,businessId,operatorModel);
}else {
throw new BaseException(PayServiceResponse.VERSION_INCOMFORMITY);
}
System.out.println("操作余额和流水时间"+(System.currentTimeMillis()-start));
}

@UpdateSingleCache(namespace = NAMESPACE,expiration = 0)
public void testCache(@ParameterDataUpdateContent @ParameterValueKeyProvider Account account)
throws Exception{
account.setOldVersion(account.getVersion());
account.setVersion(accountDao.queryVersion());
long updateSum = accountDao.updateAccountBalance(account);
if(updateSum == 0){
throw new BaseException(PayServiceResponse.BALANCE_LACK);
}
}
就是上面两个方法,下面一个方法update后能够更新缓存,上面一个为啥不行啊?CacheJava