[ 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)