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() 中的持久字段迭代期间忽略类型名似乎可以解决该错误。