如何使用 Olingo 获取 EntityType 的 属性 属性

How to get property attributes for EntityType using Olingo

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

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

在 Eclipse 中浏览,我可以看到 EntityType 对象已经解析了这些属性并将它们存储在哈希图中。知道如何使用 Olingo 做到这一点吗?最后的手段是再次对元数据 xml 进行侧面处理,但我真的不想那样做。

我还在调试器中看到调用

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

包含一个 SimpleProperty property 变量,其中包含我所有的属性注释。再次无法弄清楚如何获得访问权限(黑客攻击和谷歌搜索)。叹息:\

在与 olingo 用户组的成员交谈后,我找到了解决方案。代码片段

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

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

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

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

在调用 prop.getAnnotations()

时加载注释