- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
插入数据的方法
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;
}
}
但是它没有捕获异常。它将显示在用户界面上。那么我如何在java端捕获这个异常。
com.mongodb.MongoException$DuplicateKey: { "serverUsed" : "192.168.1.113:27017" , "ok" : 1 , "n" : 0 , "err" : "E11000 duplicate key error index: jmailer_digiengage.integer_test.$name dup key: { : \"frji\" }" , "code" : 11000} at com.mongodb.CommandResult.getWriteException(CommandResult.java:88) at com.mongodb.CommandResult.getException(CommandResult.java:79) at com.mongodb.DBCollectionImpl.translateBulkWriteException(DBCollectionImpl.java:415) at com.mongodb.DBCollectionImpl.insertImpl(DBCollectionImpl.java:210) at com.mongodb.DBCollection.insert(DBCollection.java:176) at com.mongodb.DBCollection.insert(DBCollection.java:161) at com.mongodb.DBCollection.insert(DBCollection.java:107) at com.mongodb.DBCollection.save(DBCollection.java:1214) at com.mongodb.DBCollection.save(DBCollection.java:1179) at org.springframework.data.mongodb.core.MongoTemplate$11.doInCollection(MongoTemplate.java:1106) at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:479) at org.springframework.data.mongodb.core.MongoTemplate.saveDBObject(MongoTemplate.java:1101) at org.springframework.data.mongodb.core.MongoTemplate.doSave(MongoTemplate.java:1034) at org.springframework.data.mongodb.core.MongoTemplate.save(MongoTemplate.java:981) at org.springframework.data.mongodb.core.MongoTemplate.save(MongoTemplate.java:969) at com.mongo.test.HomeController.home(HomeController.java:62) 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.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:111) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:806) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:729) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) at javax.servlet.http.HttpServlet.service(HttpServlet.java:635) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:798) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1441) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)
最佳答案
您可以创建 HandlerExceptionResolver 来处理并向 UI 显示用户友好的消息。
How to create HandlerExceptionResolver
更新:如果您只想处理异常,请在catch block 中写入org.springframework.dao.DuplicateKeyException
。
try{
//TODO
} catch(org.springframework.dao.DuplicateKeyException e){
//TODO - Do what you want
}
关于java - 如何处理 Spring data mongodb 中的 DuplicateKeyException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46465216/
我有以下代码将新对象添加到数据库中。首先,它从数据库中获取另一个对象并添加到最终对象中。 我的代码几行 ClassC c = ClassC.findByName(cName)
我正在研究 db2。我有一张表,其中包含一些数据: Data | Value | Lang 对该表的数据列添加了唯一约束。但是,现在应用程序可以包含同一日期的许多行。因此,我删除了约束,但是,在重组表
我有两个 SQL 表,每个表都有一个由三个不同的整数字段组成的复合键。我添加了如下代码来向 Table1 添加一条记录。 try { Table1 newRow = new Table1
我正在使用 JooQ 在 Aurora MySQL 上执行 CRUD 操作。 我有以下情况: 如果由于重复键异常导致插入失败,则再次重试相同的操作,否则忽略该异常。 如果插入失败,则在满足条件的情况下
我有两个对象:User 和 Resume。 Resume 有一个 User user 字段。在我的代码中,我首先得到一个 user 对象并对其进行一些更改。如果 Resume.findByUser(u
当我尝试使用方法 [1] 更新插入(增量或插入)文档时,我确实会不时收到此错误 [2]。 [1] public NGram save(final NGram ngram) { Criteria
简而言之:与许多教程不同,对象“logger”无法被识别。 问题本身并不是很严重,我可以轻松解决它。然而,看到这个“记录器”在我的 intellIj 编辑器中保持红色状态是非常令人沮丧的。我正在浏览文
下面列出的代码尝试更新数据库中的一行,但抛出异常: System.Data.Linq.DuplicateKeyException: Cannot add an entity with a key th
我在处理 DataAccessException 时遇到了麻烦。 当违反唯一键约束时,我得到了 JpaSystemException,而不是 DuplicateKeyException! 我发现一些线
下面是我在线程 Spring 执行器下的类(class)。根据源/服务的类型 TAXP、TAXS、TAXT 方法被调用。 逻辑是如果“taxInfo.getGroupingId()”已经存在于主税表中
我有大量的数据希望使用GORM加载到数据库中。 class DbLoadingService { static transactional = false // these ar
我正在为一些关键业务操作编写审计服务。该服务正在使用 IoC 模式实现: public interface IAuditWriter { void WriteAction(int key, s
是否有类似 DuplicateKeyException 的东西适用于 javax.persistence.*? 我发现这个异常仅适用于 ejb 库:DuplicateKeyException 谢谢。
我在使用 Oracle 数据库的 WebLogic 上部署了一个相对简单的 Web 应用程序。当我完成应用程序的开发并准备将其部署到生产 WebLogic 实例所在的实际 Linux 服务器时,应用程
我正在使用 Spring Boot 和 spring data MongoDB(+mongodb-reactive,但我想这对于这个问题并不重要)。对于一些自动生成,我使用 Lombok。 我有一个U
插入数据的方法 public String home() { try { MongoData data=new MongoData(); data.setD
我正在使用 SpringBoot 和 jdbc 模板,并在获取一些重复数据时执行批量插入。我想忽略重复的行,系统应该继续插入,但我收到异常并且插入被回滚。我怎样才能继续插入数据并保留重复的行。 使用下
我有一个带有 @Document(collection = "excursionAttendees") 注释的 POJO ( ExcursionAttendee ) 注释,并且有一个没有任何自定义方法
正如标题中提到的,当同一个客户端同时查询 token 端点时(两个进程同时为同一个客户端请求 token ),我遇到了这个问题。 身份验证服务器日志中的消息如下所示: 2016-12-05 19:08
我正在使用 Spring-Data/MongoDB 并在保存/插入时正确捕获重复键。 例如,假设我有一个用户被保存到一个集合中。 User 对象用两个 @Indexed(unique=true) (两
我是一名优秀的程序员,十分优秀!