[ 
https://issues.apache.org/jira/browse/OLINGO-1307?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Peter Lawrence reopened OLINGO-1307:
------------------------------------

I was premature when I said that 4.5.0 fixed the problem. 

If the $expand includes a complexProperty with a navigationProperty, it will 
not serialize the navigationproperty unless the $select includes the 
complexproperty.

Employee('NWD~SystemBEmployee-2')?$select=label&$expand=employer/systemAEmployer($select=label,subjectId)

fails where emplayer is a complex property

However 

Employee('NWD~SystemBEmployee-2')?$select=label,*employer*&$expand=employer/systemAEmployer($select=label,subjectId)

successfully serializes the contents of the navigationProperty target.

I am using OpenUI5 that does not include in the $select a complexProperty so it 
is difficult to workaround.

 

In Olingo it is impossible to automatically add to the selectOption as this has 
been declared as final:-(.

 

 

> OData V4 requests for property and navigationproperty values of complexTypes 
> that are not included in the selected items are ignored
> ------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: OLINGO-1307
>                 URL: https://issues.apache.org/jira/browse/OLINGO-1307
>             Project: Olingo
>          Issue Type: Bug
>          Components: odata4-server
>    Affects Versions: (Java) V4 4.4.0
>            Reporter: Peter Lawrence
>            Priority: Blocker
>             Fix For: (Java) V4 4.5.0
>
>
> *URL Request*
> Unsuccessful:
> {code:java}
> Employee('NWD~ContractEmployee-1')?$expand=employer/contractEmployer($select=label,subjectId){code}
> Successful:
> {code:java}
> Employee('NWD~ContractEmployee-1')?$select=employer&$expand=employer/contractEmployer($select=label,subjectId){code}
> *Steps to reproduce the problem:*
>  The OData model contains a complexType, with navigationProperties as values:
> {code:java}
>  <EntityType Name="Employee" OpenType="true">
>   <Key>
>     <PropertyRef Name="subjectId"/>
>   </Key>
>   <Property Name="subjectId" Type="Edm.String" Nullable="false"/>
>   ...
>   <Property Name="employer" Type="northwind.employer"/>
>   ...
>  </EntityType>
> <ComplexType Name="employer">
>  <NavigationProperty Name="contractEmployer" 
> Type="Collection(northwind.Shipper)"/>
>  <NavigationProperty Name="parttimeEmployer" 
> Type="Collection(northwind.Supplier)"/>
>  </ComplexType>
> {code}
>  
> *Other information*
> This was raised originally with the OpenUI5 project as it was thought that 
> the $select should have been included in the request. However they have 
> responded saying it is indeed not necessary according to the standard: 
> [https://github.com/SAP/openui5/issues/2235#issuecomment-428106366])



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to