0

InstanceId.value() 包含两次类型名是否正确?

// 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); 
}

结果,我的自定义类型“StateStructures.Framework”和一些 Guid MongoRepository.queryForSnapshots() 收到以下 bson 查询(并返回 0 个结果):

{ "globalId_key" : "StateStructures.Framework/49168d17-60e9-4720-97d2-a6f7928e18b6-0000,StateStructures.Framework"}

如果我从末尾手动删除“,StateStructures.Framework”,那么mongo会返回预期的行。

它看起来像一个错误:在 InstanceId.value() 中使用 typename 声明并在 InstanceId.getCdoIdAsString() 中再次附加它会使查询绝对不正确。相反,在 InstanceId.getCdoIdAsString() 中的持久字段迭代期间忽略类型名似乎可以解决该错误。

4

1 回答 1

0

如果不了解您的域类(StateStructures 和 Framework),很难回答这个问题。据我了解,您使用复杂对象作为 Id?

请发布此类以及有关正在比较的对象的详细信息。您使用最新的 Javers 版本(1.4.0)吗?

于 2015-12-28T19:20:15.803 回答