olingo - 在 Apache Olingo for OData v4 中使用注释

标签 olingo java-annotations

我看到有描述使用 Olingo for Odata v2 注释的文档: https://olingo.apache.org/doc/odata2/tutorials/AnnotationProcessorExtension.html

例如,我不想手动创建详细说明所有 EDM 元数据的提供程序,而是想向我的模型添加注释并让通用 EDM 提供程序生成所有元数据。数据提供者也是如此。它会像这样:

@EdmEntityType
@EdmEntitySet
public class Car {
  @EdmKey
  @EdmProperty
  private String id;
  @EdmProperty
  private String model;
  @EdmNavigationProperty
  private Manufacturer manufacturer;
}

Olingo Odata4 有类似的功能吗?我找不到任何示例,搜索也没有看到在其源代码中定义的注释。我记得这种方法适用于其他框架、.Nets Web API、SDL Odata、Olingo Odata2 等。

更新:我最终使用了 SDL Odata,它也支持 Odata v4 并且有符号。有关示例,请看这里:https://github.com/sdl/odata-example

这是 Scala 中模型的样子:

@EdmEntity(namespace = "SDL.OData.Example", key = Array("id"), containerName = "SDLExample")
@EdmEntitySet
case class Person (
  @(EdmProperty @field)(name="id",       nullable = false) var personId: String,
  @(EdmProperty @field)(name="firstName",nullable = false) var firstName: String,
  @(EdmProperty @field)(name="lastName", nullable = false) var lastName: String,
  @(EdmProperty @field)(name="age",      nullable = false) var age: Int
)

最佳答案

目前没有关于此主题的文档。我建议您查看他们的集成测试中使用的 Olingo TechSvc 模块。在那里您可以看到如何为 EntitySet 设置注释:https://github.com/apache/olingo-odata4/blob/2e24ffd1d3c343fdec45f8dbf0398783a0a86f3f/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java#L179

基本上,您使用可以在 org.apache.olingo.commons.api.edm.annotation 包中找到的类,并将这些类的实例添加到您想要注释的 CsdlProvider 元素中。

关于olingo - 在 Apache Olingo for OData v4 中使用注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38317761/

相关文章:

Android Studio 警告 - InnerClass 注释缺少相应的 EnclosureMember 注释

java - 如何将 Java 注解添加到 JNI SWIG API?

Java注释-限制具有相同字段元素值的注释的基数(出现)

excel - Olingo 和 Excel

java - 如何在java中的odata2服务上进行身份验证? (基本授权)

java - 如何向 ODataClient (Apache Olingo) 添加 header ?

java - Olingo V4 注释未反射(reflect)在 $metadata 中

java - 如何在 Apache Olingo V2.0 生成的元数据中添加 Annotations 元素?

java - 为什么 "Integer.TYPE"在注释 "attribute value must be constant"中显示错误

java - Python 装饰器与 Java 注释或带有 Aspects 的 Java 相同吗?