1

我正在构建一个访问 OData 信息的 java 服务。我正在使用 olingo 来解析我返回的所有 json。如果我提取元数据,我可以看到我的属性在我的所有 EntityTypes 下都有自定义属性。我正在尝试访问这些属性。我目前可以访问所有属性,但我似乎只能获得键值对。

for(Entry<String, Object> prop : entry.getProperties().entrySet())

在 Eclipse 中深入了解,我可以看到 EntityType 对象已经解析了这些属性并将它们存储在哈希图中。知道如何使用 Olingo 来解决这个问题吗?最后的手段是再次处理元数据 xml,但我真的不想这样做。

我还在调试器中看到调用

entitySet.getEntityType().getProperty("createdBy")

包含一个SimpleProperty property包含我所有属性注释的变量。再次无法弄清楚如何访问(黑客和谷歌)。叹息:\

4

1 回答 1

0

在与 olingo 用户组的人交谈后,我有了一个解决方案。代码片段

entitySet.getEntityType().getProperty("createdBy")

返回一个 EdmTyped 对象。这可以转换为 EdmProperty,其中注释和属性可用于查找。

EdmProperty prop = (EdmProperty)entitySet.getEntityType().getProperty("createdBy")
for(EdmAnnotationAttribute attr : property.getAnnotations().getAnnotationAttributes())
{
    attr contains your info
}

我之前没有尝试过这个,因为当我在转换为 EdmProperty 注释变量为空后查看调试器时。一次又一次地吸取教训,永远不要假设。:)

调用时会加载注释prop.getAnnotations()

于 2016-04-12T20:32:21.193 回答