2017-10-03 10 views
0

現在、私のプロジェクトはJPAをデータベース接続に使用しています。Apache Olingoでフィールドを無視する

私はデフォルトのOdataJPAプロセッサも使用しています。

ではなく、では、odata2 APIの応答に特定のフィールド(「パスワード」など)を含めることができます。または、私は本当にcustomOdataJPAProcessorを実装する必要がありますか?

答えて

2

一部のJPAエンティティ属性を除外する最も簡単な方法は、JPA-EDMマッピングモデルを定義することです。これは基本的にthis schemaに従うXMLファイルです。詳細については、redefining OData JPA metadataのドキュメントを参照してください。

マッピングモデルXMLをリンクするには、WEB-INFフォルダにあるファイルのファイル名を指定するか(WARを作成することを前提とします)、または十分に柔軟でない場合は、 JPA EDM extensionreturn the mapping model file as a streamを作成できます。

これは、このようなファイルは次のように見えるかもしれ方法です。

<?xml version="1.0" encoding="UTF-8"?> 
<JPAEDMMappingModel xmlns="http://www.apache.org/olingo/odata2/jpa/processor/api/model/mapping"> 
    <PersistenceUnit name="My_Persistence_Unit"> 
     <JPAEntityTypes> 
      <JPAEntityType name="MyEntity"> 
       <EDMEntityType>MyEntity</EDMEntityType> 
       <EDMEntitySet>MyEntities</EDMEntitySet> 
       <JPAAttributes> 
        <JPAAttribute name="attribute" exclude="true" /> 
       </JPAAttributes> 
       <JPARelationships /> 
      </JPAEntityType> 
     </JPAEntityTypes> 
     <JPAEmbeddableTypes /> 
    </PersistenceUnit> 
</JPAEDMMappingModel> 
関連する問題