Olingo V4注释没有反映在$ metadata中

时间:2017-02-08 05:25:44

标签: java apache odata metadata olingo

我使用Olingo实现了Odata V4服务。我想包括
Aggregation.ApplySupported 注释到我的服务。但是,我的$元数据文档中的注释术语值为空。以下是我的代码段

List<CsdlAnnotation> list = new ArrayList<CsdlAnnotation>();
CsdlAnnotation annotationAttribute = new CsdlAnnotation();
annotationAttribute.setTerm("Aggregation.ApplySupported");
annotationAttribute.setExpression(new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String, "true"));
list.add(annotationAttribute);
entityContainer.setAnnotations(list);

$元数据

<EntityContainer Name="myContainer">
   <!-- .....sets -->
  <Annotation>   <!-- term is blank -->
     <String>true</String>
  </Annotation>
</EntityContainer>

无法弄清楚我错过了什么。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

您应该在提供商中覆盖 getTerm 方法。

@Override
    public CsdlTerm getTerm(final FullQualifiedName termName) throws ODataException {
        return new CsdlTerm().setAppliesTo(Arrays.asList("EntityContainer"))
                .setName("ApplySupported");
    }

请参阅此处的示例:https://apache.googlesource.com/olingo-odata4/+/master/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java