Mongodb value()包含两次typename。对吗?
InstanceId.value()包含类型名两次,对吗Mongodb value()包含两次typename。对吗?,mongodb,javers,Mongodb,Javers,InstanceId.value()包含类型名两次,对吗 // gives "typename/...,typename' public String value(){ return this.getTypeName() + "/" + this.getCdoIdAsString(); } // gives comma-separated persistent values including typename private String getCdoIdAsString(){
// gives "typename/...,typename'
public String value(){
return this.getTypeName() + "/" + this.getCdoIdAsString();
}
// gives comma-separated persistent values including typename
private String getCdoIdAsString(){
return ReflectionUtil.reflectiveToString(this.cdoId);
}
因此,对于具有某些Guid的自定义类型“StateStructures.Framework”,MongoRepository.queryForSnapshots()接收以下bson查询(并返回0个结果):
如果我手动从末尾删除“、StateStructures.Framework”,那么mongo将返回预期的行
这看起来像一个bug:在InstanceId.value()中用typename声明,然后在InstanceId.getCdoIdAsString()中再次追加它,这会使查询完全不正确。
相反,在InstanceId.getCdoIdAsString()中的持久字段迭代过程中忽略typename似乎可以解决此错误。如果不了解域类(状态结构和框架),很难回答此问题。据我所知,您使用复杂对象作为Id 请发布这些类,以及有关正在比较的对象的详细信息。 您是否使用最新的Javers版本(1.4.0)
{ "globalId_key" : "StateStructures.Framework/49168d17-60e9-4720-97d2-a6f7928e18b6-0000,StateStructures.Framework"}