我有一项服务在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”:“不能使用非当主机不是副本集的成员时,多数'w'模式ACKNOWLEDGED“};嵌套异常是com.mongodb.CommandFailureException:{“serverUsed”:“127.0.0.1:27017”,“ok”:0,“code”:2,“errmsg”:“不能使用非多数'w'模式ACKNOWLEDGED时主机不是副本集“}
的成员
我在这里缺少什么?
答案 0 :(得分:0)
尝试使用而不是
<property name="writeConcern" value="ACKNOWLEDGED"/>
这一个
<property name="writeConcern">
<value type="com.mongodb.WriteConcern">ACKNOWLEDGED</value>
</property>
(详细信息:How assign bean's property an Enum value in Spring config file?)