日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java - 保存日志到mongo失敗,樂觀鎖異常

瀏覽:265日期:2024-01-19 14:57:29

問題描述

想把mongo保存進mongoDB中,使用的spring-boot-data-mongo.在dao層可以正常保存,但是寫在service中報錯:

org.springframework.dao.OptimisticLockingFailureException: Optimistic lock exception on saving entity: {_class=com.zihexin.base.mongo.MerchantRequestLog, version=1, requestIp=1111, requestDate=Tue Mar 21 17:15:01 CST 2017, requestParam=22222, paymentWay=213} to collection merchant_request_log at org.springframework.data.mongodb.core.MongoTemplate$12.doInCollection(MongoTemplate.java:1135) at org.springframework.data.mongodb.core.MongoTemplate$12.doInCollection(MongoTemplate.java:1108) at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:461) at org.springframework.data.mongodb.core.MongoTemplate.doUpdate(MongoTemplate.java:1108) at org.springframework.data.mongodb.core.MongoTemplate.doSaveVersioned(MongoTemplate.java:977) at org.springframework.data.mongodb.core.MongoTemplate.save(MongoTemplate.java:941) at org.springframework.data.mongodb.repository.support.SimpleMongoRepository.save(SimpleMongoRepository.java:78) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.executeMethodOn(RepositoryFactorySupport.java:483) at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:468) at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:440) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:61) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208) at com.sun.proxy.$Proxy84.save(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:136) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208) at com.sun.proxy.$Proxy84.save(Unknown Source) at com.zihexin.base.service.MongoService.saveRequestLog(MongoService.java:44) at com.zihexin.ZhxpayCommonApplicationTests.test4(ZhxpayCommonApplicationTests.java:72) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)

service中代碼:

@Servicepublic class MongoService { private static Logger logger = LoggerFactory.getLogger(MongoService.class); /**商戶請求相關*/ //判斷流水號重復或者為空 @Autowired MerchantRequestLogRepo merchantRequestLogRepo; public boolean exists(String requestId){return merchantRequestLogRepo.exists(requestId); } //異步保存mongo日志// @Async public void saveRequestLog(String ip,String paramMap, String requestId,String paymentWay){long start = System.currentTimeMillis();logger.info('Async Save Merchant Request Log Begin : ');MerchantRequestLog merchantRequestLog = new MerchantRequestLog();merchantRequestLog.setRequestDate(new Date());merchantRequestLog.setRequestId(requestId);merchantRequestLog.setRequestParam(paramMap);merchantRequestLog.setRequestIp(ip);merchantRequestLog.setPaymentWay(paymentWay);//merchantRequestLog.setHostIp(Constants.hostAddress);merchantRequestLogRepo.save(merchantRequestLog);logger.info('Async Save Merchant Request Log End ,Spend Time :{} ms',System.currentTimeMillis()-start); }

save()方法為繼承MongoRepository中的方法,我改為insert()后就可以正常保存了,想不明白為什么,希望大家幫忙解答一下,謝謝!

問題解答

回答1:

2點供考慮:

1,樂觀鎖主要是依靠version來處理沖突的,樂觀鎖的異常主要是:

1)Insert的時候發現待插入的數據,有更為新的version的數據了,因為有其他的同樣的Insert的操作;2)Update的時候發現待修改的數據,有更為新的version的數據了,因為有其他的同樣的Update的操作。這個需要檢查一下應用需求,是否可以接受這種異常;如果接受不了,就需要進一步修改。

2,為什么Save不行,而Insert可以?請留意MongoDB中的Save和Insert的區別。

1)Save如果帶_id,有可能是Update;2)Save如果不帶_id,和Insert一樣。簡而言之,Save可以是一個Update操作。

供參考。

Love MongoDB! Have Fun!

標簽: java
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品国产欧美日韩一区二区三区| 欧美亚洲激情| 亚洲色图综合| 日韩制服丝袜先锋影音| 性一交一乱一区二区洋洋av| 亚洲激情婷婷| 午夜亚洲精品| 一区二区电影| 青青伊人久久| 国产精品欧美一区二区三区不卡| 国产精品密蕾丝视频下载| 欧美精品三级在线| 中文字幕成人| 日韩成人在线看| 国产精品欧美在线观看| 精品国产18久久久久久二百| 97精品在线| 久久中文字幕av| 在线综合欧美| 亚洲精品视频一二三区| 日韩av一区二区三区四区| 国产三级一区| 精品久久一区| 999久久久精品国产| 天堂网在线观看国产精品| 激情久久久久久久| 久久国产高清| 中文字幕成人| 欧美精品97| 久久精品亚洲人成影院| 99在线精品免费视频九九视| 日本成人在线不卡视频| 麻豆久久一区二区| 群体交乱之放荡娇妻一区二区| 视频一区中文| 日本国产欧美| 国产精品精品国产一区二区| 国精品一区二区| 亚洲精品黄色| 久久精品日韩欧美| 亚洲高清二区| 香蕉久久一区| 国产精品一区二区免费福利视频 | 日精品一区二区三区| 久久国产人妖系列| 岛国av在线网站| 亚洲神马久久| 国产精品亚洲二区| 中文字幕在线高清| 日韩中文字幕1| 精品久久亚洲| 蜜臀久久久久久久| 欧美精品第一区| 好看不卡的中文字幕| 日韩一区精品| 久久久久久久欧美精品| 国产精品一区毛片| 婷婷综合亚洲| 国产视频一区二区在线播放| 亚洲黑丝一区二区| 国产精品久久亚洲不卡| 久久伦理在线| 国产精品一区三区在线观看| 久久久国产亚洲精品| 日本不卡在线视频| 香蕉久久99| 国产精品丝袜在线播放| 久久精品av| 美女性感视频久久| 亚洲天堂av资源在线观看| 中文字幕在线官网| 国产三级一区| 免费观看在线色综合| 中文字幕人成乱码在线观看 | 黄色日韩在线| 美女毛片一区二区三区四区最新中文字幕亚洲 | 99综合视频| 国产黄大片在线观看| 免费成人性网站| 婷婷精品视频| 国产精品99久久精品| 日韩国产欧美视频| 伊人影院久久| 美女av在线免费看| 亚洲ww精品| 免费国产自久久久久三四区久久| 欧美一区91| 丝袜诱惑制服诱惑色一区在线观看 | 色婷婷色综合| 国产免费av一区二区三区| 美女精品在线| 香蕉久久精品| 日韩一区电影| 久久99视频| 日本午夜精品| 亚洲欧美日韩一区在线观看| 久久蜜桃av| 国产美女高潮在线| 欧美国产极品| 国产精东传媒成人av电影| 亚洲精品进入| 老司机精品久久| 9久re热视频在线精品| 久久久夜精品| 国产精品字幕| 日韩欧美午夜| 亚洲电影有码| 天堂网av成人| 欧美羞羞视频| 国产福利电影在线播放| 国产伊人久久| 精品一区二区三区中文字幕视频| 91成人精品观看| 日韩av中文字幕一区二区| 中文字幕亚洲精品乱码| 午夜在线播放视频欧美| 婷婷综合在线| 蜜臀91精品国产高清在线观看| 999久久久国产精品| 欧产日产国产精品视频| 在线天堂中文资源最新版| 国产高潮在线| 久久久久99| 日韩一区亚洲二区| 桃色一区二区| 欧美日韩中文一区二区| 国产99久久久国产精品成人免费| 久久久久中文| 91精品1区| 中文一区在线| 中文视频一区| 日韩欧美高清一区二区三区| 日本麻豆一区二区三区视频| 日韩成人午夜精品| 欧美在线日韩| 欧美激情综合| 热三久草你在线| 久久高清免费| 蜜桃成人av| 亚洲在线观看| 亚洲aa在线| 国产日本精品| 精品九九在线| 91精品综合| 在线精品亚洲| 国产日产一区| 中文字幕人成乱码在线观看 | 亚洲国产成人精品女人| 精品在线99| 免费日本视频一区| 日本免费一区二区视频| 精品国产乱码久久久| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 免费人成网站在线观看欧美高清| 色综合视频一区二区三区日韩 | 欧美精品国产| 久久精品毛片| 欧美日韩中文一区二区| 亚洲久久在线| 麻豆成人在线观看| 99精品在线观看| 中文不卡在线| 美女久久久久久 | 尤物在线精品| 亚洲精品伊人| 国产成人精品一区二区三区视频 | 国产精品白浆| 久久国产日本精品| 久久亚洲影院| 久久爱www成人| 亚洲91精品| 亚洲久久在线| 国产精品99视频| 日韩在线一区二区| 欧美精品二区| 尤物精品在线| 老司机精品视频网| 亚洲欧美综合| 国产精品香蕉| 欧美日韩视频一区二区三区| 日韩欧美激情电影| 日韩国产欧美| 午夜精品福利影院| 播放一区二区| 奇米狠狠一区二区三区| 天堂日韩电影| 久久国产三级| 激情婷婷综合| 麻豆视频久久| 水蜜桃久久夜色精品一区的特点| 国产精品久久久免费| 欧美日韩国产在线观看网站 | 久久人人精品| 国产乱码精品一区二区亚洲| 丝袜av一区| 国产精品亚洲欧美| 日韩中文字幕不卡| 91精品国产乱码久久久久久久| 欧美在线不卡| 午夜一级在线看亚洲|