我在一个简单的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相同的条目 - 我会收到一个错误,指出约束不允许他插入。
如何验证保存是否有效(使用存储库)?
由于
答案 0 :(得分:0)
我也会建议一个变种。我不确定您的数据结构,但您可以尝试插入没有“playerId
”的文档。 Mongo将为您自动为每个对象生成_id
,这是唯一的,默认情况下会更多_id
字段在mongo中自动编入索引。