【发布时间】:2014-12-17 11:10:17
【问题描述】:
我有一项服务可以在 mongo 中执行 CRUD 操作。我为此使用 MongoRepository。我遇到的问题是,当我插入重复条目时,我无法恢复任何错误。
@Document(collection = "test")
public class MongoInsert {
@Id
private String identifier;
private String value;
@PersistenceConstructor
public MongoInsert(String identifier, String value) {
this.identifier = identifier;
this.value = value;
}
}
我写了一个测试,尝试两次插入同一个对象,测试通过了,我期待第二次插入会抛出异常。
我的 mongoTemplate 定义是
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="myMongoDbFactory"/>
<constructor-arg name="mongoConverter" ref="myMappingConverter"/>
<property name="writeResultChecking" value="EXCEPTION"/>
</bean>
我尝试将“writeConcern”设置为“ACKNOWLEDGED”,但后来我出错了
引起:org.springframework.data.mongodb.UncategorizedMongoDbException: { "serverUsed" : "127.0.0.1:27017" , "ok" : 0 , "code" : 2 , "errmsg" : "cannot use non-当主机不是副本集的成员时,多数 'w' 模式已确认"};嵌套异常是 com.mongodb.CommandFailureException: { "serverUsed" : "127.0.0.1:27017" , "ok" : 0 , "code" : 2 , "errmsg" : "cannot use non-majority 'w' mode ACKNOWLEDGED when主机不是副本集的成员"}
我在这里错过了什么?
【问题讨论】:
标签: mongotemplate mongorepository