2017-10-03 1 views
0

Actuellement, mon projet utilise l'APP pour la connexion à la base de données. J'utilise également le processeur OdataJPA par défaut.Ignorer le champ dans Apache Olingo

Comment puis-je atteindre pas pour inclure certains champs par exemple ("mot de passe") dans ma réponse API odata2. Ou dois-je vraiment implémenter un customOdataJPAProcessor?

Répondre

2

La manière la plus simple d'exclure certains attributs d'entité JPA consiste à définir un modèle de mappage JPA-EDM. Ceci est essentiellement un fichier XML qui adhère à this schema. Vous pouvez en lire plus à ce sujet dans la documentation ici: redefining OData JPA metadata. Vous avez deux manières différentes de lier le modèle de mappage XML, soit vous spécifiez un nom de fichier d'un fichier situé dans le dossier WEB-INF (en supposant que vous construisez un fichier WAR), ou, si cela n'est pas assez flexible, vous pouvez créer un JPA EDM extension et return the mapping model file as a stream.

Voici comment un tel fichier peut ressembler à:

<?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>