Java 引用类Morphia上的索引冲突

Java 引用类Morphia上的索引冲突,java,mongodb,java-ee-6,morphia,Java,Mongodb,Java Ee 6,Morphia,我试图与morphia(0.99)/mongoDB(2)保持一对多(车主)的关系。当我试图使用类所有者的引用来持久化类Car时,Morphia抛出一个MongoException$DuplicateKey异常。这很奇怪,因为我认为在morphia中不存在级联坚持 当我持久化Car时,为什么morphia在引用的类所有者上为index*index\u username*抛出重复的键异常 Pojo: 例外情况: com.mongodb.MongoException$DuplicateKey: E11

我试图与morphia(0.99)/mongoDB(2)保持一对多(车主)的关系。当我试图使用类所有者的引用来持久化类Car时,Morphia抛出一个MongoException$DuplicateKey异常。这很奇怪,因为我认为在morphia中不存在级联坚持

当我持久化Car时,为什么morphia在引用的类所有者上为index*index\u username*抛出重复的键异常

Pojo:

例外情况:

com.mongodb.MongoException$DuplicateKey: E11000 duplicate key error index: myapp.car.$index_username  dup key: { : null }

不能添加多个
null
引用。为所有实体添加一个值(最多1个可能是
null
),或者在索引上设置
sparse=true
,这样您就可以有唯一的值,但允许多个
null

您不能添加多个
null
引用。为所有实体添加一个值(最多1个可能为
null
),或在索引上设置
sparse=true
,以便具有唯一的值,但是允许多个
null

我应该说,将第一个Car对象持久化引用到Owner很好。我应该说,将第一个Car对象持久化引用到Owner很好。我必须删除/删除整个数据库,然后它开始工作。我猜它缓存了以前的索引?!稀疏在Morphia中意味着什么,java文档没有解释太多(除了允许空值)?奇怪的是,您必须删除整个数据库-假设删除索引就足够了。稀疏告诉索引,它应该忽略唯一检查上的空值;因此,您可以有多个空值,而所有非空值都必须是唯一的。希望这能让事情变得更清楚。我不得不删除/删除整个数据库,然后它开始工作。我猜它缓存了以前的索引?!稀疏在Morphia中意味着什么,java文档没有解释太多(除了允许空值)?奇怪的是,您必须删除整个数据库-假设删除索引就足够了。稀疏告诉索引,它应该忽略唯一检查上的空值;因此,您可以有多个空值,而所有非空值都必须是唯一的。希望这能让事情变得更清楚。
car.setOwner(owner);
BeanUtil.getDataStore().save(car);
com.mongodb.MongoException$DuplicateKey: E11000 duplicate key error index: myapp.car.$index_username  dup key: { : null }