如何使用 OLingo 4 在 Java 中加载 EDMX 模式文件?

How do I load an EDMX schema file in Java with OLingo 4?

我有一个很大的 edmx 模式文件,在 Java 中使用 OLingo 手动重新创建一个 EntityType 非常不方便。虽然我不反对编写某种加载程序,但我想确保 OLingo 4 尚未提供此功能。

我找到了一个 article 来展示 OLingo 2 如何加载此类信息:

 @Override
 public Edm readMetadata(final InputStream inputStream, final boolean validate) 
    throws EntityProviderException {
    EdmProvider provider = new EdmxProvider().parse(inputStream, validate);
    return new EdmImplProv(provider);
 }

但是我需要用到版本4。我在版本4的文档中没有找到相同的接口,所以我有点不知所措。非常感谢任何指点。

经过更多调查,我发现我需要 odata-server-core-ext package and I could import org.apache.olingo.server.core.MetadataParser. Among other things, this class has a function called buildEdmProvider(Reader),它可以为您构建 SchemaBasedEdmProvider

如果你没有绑定到 OLingo,你也可以试试 odata-client:https://github.com/davidmoten/odata-client

我自己没有很好的机会使用它,不幸的是我尝试连接的网络服务是 OData 2,而 odata-client 只支持 4。但是,它看起来有一些简洁的功能(包括类型安全和 automatic/transparent 分页)。