Java 弹簧数据+;MongoTemplate-对文档的约束;不影响插入\保存
我在一个简单的web应用程序中使用spring数据 我有一个简单的文档,其中一个字段有唯一的约束:Java 弹簧数据+;MongoTemplate-对文档的约束;不影响插入\保存,java,spring,mongodb,spring-data,mongotemplate,Java,Spring,Mongodb,Spring Data,Mongotemplate,我在一个简单的web应用程序中使用spring数据 我有一个简单的文档,其中一个字段有唯一的约束: @Document @CompoundIndexes({ @CompoundIndex(name = "playerConstraint", def = "{ 'playerId': 1 }", unique = true) public class InProgressGameRound extends AbstractDocument { //... } 问题是,当我使用以下命令调用该文
@Document
@CompoundIndexes({ @CompoundIndex(name = "playerConstraint", def = "{ 'playerId': 1 }", unique = true)
public class InProgressGameRound extends AbstractDocument {
//...
}
问题是,当我使用以下命令调用该文档的存储库时:
this.repository.save(newRound)
数据库中已经存在newRound.playerId的地方-我没有任何例外!
程序计数器继续运行,即使文档没有真正保存(由于限制),似乎一切都正常
如果我试图手动将相同的条目插入mongoDB,我会得到一个错误,即约束不允许插入
如何验证保存是否有效(使用存储库)
谢谢另外,我建议使用一种变体。我不确定您的数据结构,但您可以尝试在不使用“
playerId
”的情况下插入文档。Mongo会自动为您的每个对象生成\u id
,默认情况下,每个对象都是唯一的,甚至更多的\u id
字段在Mongo中自动索引。您解决过这个问题吗?