Spring数据+ MongoTemplate - 对文档的约束不会影响插入\保存

时间:2014-05-11 13:35:42

标签: java spring mongodb spring-data mongotemplate

我在一个简单的Web应用程序中使用spring数据。

我有一个简单的文档,其中一个字段具有唯一约束:

@Document
@CompoundIndexes({ @CompoundIndex(name = "playerConstraint", def = "{ 'playerId': 1  }", unique = true)
public class InProgressGameRound extends AbstractDocument {
 //...
}

问题是当我用以下方法调用该文档的存储库时:     this.repository.save(newRound);

其中newRound.playerId已存在于db中 - 我没有任何例外! 程序计数器只是继续前进,看起来一切都没问题,即使文档没有真正保存(因为约束)

如果我尝试手动插入mongoDB相同的条目 - 我会收到一个错误,指出约束不允许他插入。

如何验证保存是否有效(使用存储库)?

由于

1 个答案:

答案 0 :(得分:0)

我也会建议一个变种。我不确定您的数据结构,但您可以尝试插入没有“playerId”的文档。 Mongo将为您自动为每个对象生成_id,这是唯一的,默认情况下会更多_id字段在mongo中自动编入索引。