当前位置: 首页 > 知识库问答 >
问题:

如何在Spring data mongodb中处理DuplicateKeyException

巢靖
2023-03-14
    public  String home()  {

    try
    {
    MongoData data=new MongoData();
    data.setDate(new Date());
    data.setName("frji");

    //mongoTemplate.insert(data);
    mongoTemplate.save(data);
    }
    catch (DuplicateKeyException e) {

    }
    catch (MongoException e) {

    }
    return "home";
}
  @Document(collection="integer_test")
public class MongoData {
    @Id
    private String id;
    private Date date;
    @Indexed(unique=true)
    private String name;
    @Override
    public String toString() {
        return "MongoData [date=" + date + ", id=" + id + "]";
    }
    public Date getDate() {
        return date;
    }
    public void setDate(Date date) {
        this.date = date;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

}

com.mongodb.mongoException$duplicateKey:{“serverused”:“192.168.1.113:27017”,“ok”:1,“n”:0,“err”:“e11000重复键错误索引:jmailer_digiengage.integer_test.$name dup键:{:\frji\”}“,”code“:11000}在com.mongodb.commodresult.getwriteException(commandresult.java:88)在在com.mongodb.dbcollectionimpl.insertimpl(dbcollectionimpl.java:210)在com.mongodb.dbcollection.insert(dbcollection.java:176)在com.mongodb.dbcollection.insert(dbcollection.java:161)在com.mongodb.dbcollection.insert(dbcollection.java:161)在com.mongodb.dbcollection.insert(dbcollection.java:107)在在org.s处执行(mongotemplate.java:479)pringframework.data.mongodb.core.mongotemplate.savedbobject(mongotemplate.java:1101)在org.springframework.data.mongodb.core.mongotemplate.doSave(mongotemplate.java:1034)在org.springframework.data.mongodb.core.mongotemplate.save(mongotemplate.java:981)在在sun.reflect.nativeMethodAccessorImpl.invoke(nativeMethodAccessorImpl.java:62)在sun.reflect.delegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)在java.lang.reflect.Method.invoke(Method.java:498)在org.springframework.web.Method.support.invocableHandlerMethod.java:221)在LetInvocableHandlerMethod.Invo在org.springframework.web.servlet.mvc.method.annotation.requestMappingGhandlerAdapter.invokeHandlerMethod(requestMappingGhandlerAdapter.java:111)在org.springframework.web.servlet.mvc.method.annotation.requestMappingAdapter.java:806)在org.springframework.web.method.annotation.requestMappingAdapter.handleInternal(requestMappingGhandlerAdapter.java在org.springframework.web.servlet.dispatcherservlet.doService(dispatcherservlet.java:893)在org.springframework.web.servlet.frameworkservlet.processRequest(frameworkservlet.java:970)在org.springframework.web.servlet.frameworkservlet.doget(frameworkservlet.java.jave.635)在在org.apache.catalina.core.applicationFilterChain.InternaldoFilter(ApplicationFilterChain.java:230)在org.apache.catalina.core.applicationFilterChain.doFilter(ApplicationFilterChain.java:165)在org.apache.catalina.core.wsfilter.doFilter(ApplicationFilterChain.java:165)在org.apache.tomcat.websocket.server.wsfilter.doFilter(wsfilter.java:52)在)在org.apache.catalina.core.standardWrapperValve.invoke(StandardWrapperValve.java:198)在org.apache.catalina.core.standardContextValve.invoke(StandardContextValve.invoke(StandardContextValve.java:96)在org.apache.catalina.authenticator.authenticator.Authenticatorbase.invoke(StandardContextValve.java:468)在(AbstractAccessLogValve.java:624)在org.apache.catalina.core.standardenginevalve.invoke(Standardenginevalve.java:87)在org.apache.catalina.connector.coyoteAdapter.Service(coyoteAdapter.java:341)在org.apache.coyote.http11.http11Processor.Service(http11Processor.java:783)在org.apache.coyote.abstractProcessorlight.process(abstractProcessorlight.process dorun(nioendpoint.java:1441)在org.apache.tomcat.util.net.socketprocessorbase.run(socketprocessorbase.java:49)在java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1142)在java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:617)在

共有1个答案

彭修筠
2023-03-14

您可以创建HandlerExceptionResolver来处理并向UI显示用户友好的消息。

如何创建HandlerExceptionResolver

更新:如果您只是想处理异常,那么在catch块中写入org.springframework.dao.duplicateKeyException

try{
  //TODO
} catch(org.springframework.dao.DuplicateKeyException e){
 //TODO - Do what you want
}
 类似资料:
  • 问题内容: 我想要一个文本区域,可以处理按 Tab 键的情况。 在默认情况下,如果您按 Tab 键,则焦点将离开文本区域。但是,当用户想要在文本区域中输入 Tab 键时会怎样呢? 我可以捕捉到此事件并将焦点返回到文本区域并将标签添加到 当前 光标位置吗? 问题答案:

  • 问题内容: 如何用Java 处理? 问题答案: 我不确定“句柄”是什么意思。 您当然可以捕获该错误: 但这很可能是个坏主意,除非您确切地知道自己在做什么。

  • 问题内容: 我在网上搜索,但没有找到与i18n和Go相关的任何内容。 我希望使用Go来开发网站。处理国际化的最佳方法是什么? 问题答案: go-i18n具有一些不错的功能: 实施CLDR复数规则。 对带变量的字符串使用文本/模板。 翻译文件是简单的JSON。

  • 问题内容: 这是异步发送到我的php页面的JSON。本质上,这是一个产品列表,它将插入到我的mySQL数据库中。 我的问题是在PHP中解码JSON。我可以使用``eval’‘函数在js中做到这一点,但是在PHP中,我的努力导致了一系列复杂的爆炸和内爆函数。 我知道php具有内置的json_decode函数,但是在PHP文档中,它们仅显示如何处理数组。 任何建议或帮助都非常感谢 泰勒 问题答案: 如

  • 问题内容: 我需要在Spring 3.0应用程序中显示自定义消息。我有一个带有Hibernate的数据库,并且有几个约束。我对如何妥善处理存有疑问。我想知道是否有一种方法可以将异常映射到属性文件中的消息集,因为可以在约束验证中进行。我可以以任何方式自动处理它,还是必须在每个控制器中捕获此异常? 问题答案: 在违反约束的情况下显示用户友好消息的问题是,当将Hibernate的转换为Spring的时,

  • 问题内容: 我正在尝试从网站获取一些数据。然而,这又使我回来了。我试图获取的数据是大量的嵌套链接。我在线进行了一些研究,发现这可能是由于服务器错误(在达到预期大小之前完成了分块的传输编码)。我还在此链接上找到了以上解决方法 但是,我不确定如何在我的案例中使用它。以下是我正在处理的代码 请帮助我。谢谢 问题答案: 您包含在问题中的链接只是执行urllib的read()函数的包装程序,该函数可以为您捕

  • 本文向大家介绍如何在Java中处理Selenium中的代理?,包括了如何在Java中处理Selenium中的代理?的使用技巧和注意事项,需要的朋友参考一下 我们可以借助PROXY类在Java中使用Selenium处理代理。