我有一项服务可以在 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-majority 'w ' 当主机不是副本集的成员时,模式 ACKNOWLEDGED"}; 嵌套异常是 com.mongodb.CommandFailureException: { "serverUsed" : "127.0.0.1:27017" , "ok" : 0 , "code" : 2 , "errmsg" : "cannot use non-majority 'w' mode ACKNOWLEDGED when主机不是副本集的成员”}
我在这里想念什么?