2016-07-11 22 views
0

のためのApache Olingoでアノテーションを使用する私はODATA v2のOlingoとの注釈を使用して説明するドキュメントがある参照してください。 https://olingo.apache.org/doc/odata2/tutorials/AnnotationProcessorExtension.htmlのOData v4の

は、私は、例えば、代わりに手動ですべての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 
) 

答えて

2

はありません。彼らの統合テストで使用される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パッケージで見つけることができるクラスを使用し、あなたにそれらのclasesのインスタンスを追加します注釈を付けるCsdlProvider要素。

+0

あなたが言及した上記のコードを凝視する機会がありましたが、自分の例を思いつくためにOlingoが十分に理解しているとは思えません。 EdmTechProviderと同様の独自のカスタムEDMプロバイダを作成する必要があると私は想定しています。それは私が箱から仕事をすると期待していた何かのための仕事のビットのようだが、おそらく私は何かを欠いている? – Mike

+0

申し訳ありませんが、私はあなたの質問を誤解しているようです。私はあなたがメタデータXML内の要素であるOData注釈について話していると思いました。 現在、OData V4のODataサービスが動作するJavaアノテーションメカニズムはありません。 – chrisam

+0

アノテーションのセマンティクス。 '' Core.Permissions''読み取り専用モード、強制?私のテストから、彼らはそうではないように見えます。 –

関連する問題