3

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

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

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

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

数据库中已经存在 newRound.playerId - 我没有遇到任何异常!程序计数器继续前进,即使文档没有真正保存(由于约束),似乎一切都很好

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

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

谢谢

4

1 回答 1

0

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

于 2014-05-11T14:12:22.810 回答