如何使用 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()
时加载注释
我正在构建一个访问 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()