java – Spring mongorepository save抛出重复键异常
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Spring mongorepository save抛出重复键异常,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1927字,纯文字阅读大概需要3分钟。
内容图文
![java – Spring mongorepository save抛出重复键异常](/upload/InfoBanner/zyjiaocheng/767/c37d922a06a44e14af5a2bf818d724df.jpg)
我正在使用java和Spring.作为测试,我通过id查询对象,然后尝试保存同一个对象而不更新任何东西.当我这样做时,我得到一个重复的密钥异常.根据我读过的内容,如果_id为null,则MongoRepository.save()应该执行插入,否则应执行更新.显然,我应该得到更新.
一点代码:
// Succeeds
Datatype sut = mongoRepository.findOne("569eac0dd4c623dc65508679");
// Fails with duplicate key.
mongoRepository.save(sut);
为什么?重复上面的其他类的对象,他们工作.我怎么能麻烦拍这个呢?我不知道如何分解并解决问题.
谢谢
错误:
27906 [http-bio-8080-exec-3] 2016-05-02 13:00:26,304 DEBUG org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver -
Resolving exception from handler
[
public gov.nist.healthcare.tools.hl7.v2.igamt.lite.web.DatatypeSaveResponse
gov.nist.healthcare.tools.hl7.v2.igamt.lite.web.controller.DatatypeController.save(
gov.nist.healthcare.tools.hl7.v2.igamt.lite.domain.Datatype)
throws gov.nist.healthcare.tools.hl7.v2.igamt.lite.web.exception.DatatypeSaveException
]:
org.springframework.dao.DuplicateKeyException: {
"serverUsed" : "127.0.0.1:27017" ,
"ok" : 1 ,
"n" : 0 ,
"err" : "E11000 duplicate key error index: igl.datatype.$_id_ dup key: { : ObjectId('569eac0dd4c623dc65508679') }" ,
"code" : 11000};
nested exception is com.mongodb.MongoException$DuplicateKey: {
"serverUsed" : "127.0.0.1:27017" ,
"ok" : 1 ,
"n" : 0 ,
"err" : "E11000 duplicate key error index: igl.datatype.$_id_ dup key: { : ObjectId('569eac0dd4c623dc65508679') }" ,
"code" : 11000}
……重复
我刚刚发现了一个.如上所示保存时,spring会尝试插入,即使填充了_id也是如此.
保存其他对象(未显示但类似)时,弹簧执行,更新,并再次填充是_id.
为什么不同?文档说弹簧应该在填充_id时更新,并在不填充时插入.
还有什么可以导致这个吗?我的对象中有什么东西?也许我的读取转换器?
更新:
我刚见过这个团队.经过仔细审查,我们确定我们不再需要读取转换器.问题通过另一种方式解决.
解决方法:
在数据库端,您可能已创建唯一索引.请查看“https://docs.mongodb.com/manual/core/index-unique/”了解更多信息.
内容总结
以上是互联网集市为您收集整理的java – Spring mongorepository save抛出重复键异常全部内容,希望文章能够帮你解决java – Spring mongorepository save抛出重复键异常所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。