我已经使用Olingo实现了Odata V4服务。我正在尝试包括
Aggregation.ApplySupported对我的服务的注释。但是,在我的$ metadata文档中,注释术语的值为空白。以下是我的代码段
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>
无法弄清楚我缺少什么。
提前致谢。
最佳答案
您应该在提供程序中重写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
关于java - Olingo V4注释未反射(reflect)在$ metadata中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42105353/