spring service方法里有两个save时的同步问题
2015-09-10 11:20
429 查看
如下代码,想要使两个save方法保持一致性,即第一个save方法和第二个save方法要么同时生效,要么同时不生效。只需要像这样将commonDao的两个save方法在service的方法中调用即可,已经通过测试验证。因为spring 事务是对savePayRecord方法进行的事务管理
如下代码,想要使两个save方法保持一致性,即第一个save方法和第二个save方法要么同时生效,要么同时不生效。只需要像这样将commonDao的两个save方法在service的方法中调用即可,已经通过测试验证。因为spring 事务是对savePayRecord方法进行的事务管理
public void savePayRecord(PayInfoVO payInfo) {
// TODO Auto-generated method stub
if (payInfo == null) {
return;
}
//--添加支付记录--
TaPayInfo taPayInfo = new TaPayInfo();
commonDao.save(taPayInfo);//添加支付记录完成
//-- 同时我们需要更新付费有效期表(插入或更新操作) --
StringBuilder hql = new StringBuilder();
hql.append(" select e from TaPayExpire e where e.userId = :userId and e.product = :product ");
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("userId", payInfo.getUserId());
params.put("product", payInfo.getProduct());
TaPayExpire e = (TaPayExpire)commonDao.get(hql.toString(), params);
if (e == null) {
//不存在该用户的付费有效期记录那么就插入一条新纪录
TaPayExpire newPayExpire = new TaPayExpire();
commonDao.save(newPayExpire);
// commonDao.save(null);
}
}
如下代码,想要使两个save方法保持一致性,即第一个save方法和第二个save方法要么同时生效,要么同时不生效。只需要像这样将commonDao的两个save方法在service的方法中调用即可,已经通过测试验证。因为spring 事务是对savePayRecord方法进行的事务管理
public void savePayRecord(PayInfoVO payInfo) {
// TODO Auto-generated method stub
if (payInfo == null) {
return;
}
//--添加支付记录--
TaPayInfo taPayInfo = new TaPayInfo();
commonDao.save(taPayInfo);//添加支付记录完成
//-- 同时我们需要更新付费有效期表(插入或更新操作) --
StringBuilder hql = new StringBuilder();
hql.append(" select e from TaPayExpire e where e.userId = :userId and e.product = :product ");
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("userId", payInfo.getUserId());
params.put("product", payInfo.getProduct());
TaPayExpire e = (TaPayExpire)commonDao.get(hql.toString(), params);
if (e == null) {
//不存在该用户的付费有效期记录那么就插入一条新纪录
TaPayExpire newPayExpire = new TaPayExpire();
commonDao.save(newPayExpire);
// commonDao.save(null);
}
}
相关文章推荐
- Java正则表达式Pattern和Matcher详解
- java常见内存溢出(OOM)解决方案
- eclipse安装spring插件
- MyEclipse8.5中属性设置集锦(不定时更新)
- ubuntu java环境变量配置
- Java数据类型
- eclipse res里面的资源文件命名问题
- 使用Eclipse的wsdl2java工具
- myeclipse经常弹出Subversion Native Library Not Available框解决办法
- Java中对浮点数精度的控制
- 重拾java系列一java基础(1)
- Eclipse启动时卡死解决方法
- Thinking in java 之:容器介绍
- Mahout--最基本的推荐系统的JAVA代码
- Java中equals和==的区别
- Zookeeper Api(java)入门与应用(转)
- 2015年9月10日 struts2TEST
- Java:对象的强、软、弱和虚引用
- Spring mvc视图解析器
- eclipse设置maven加载国内镜像