Alex created OLINGO-629:
---------------------------

             Summary: No support for ENTITY for EdmMultiplicity.MANY in 
FunctionImport
                 Key: OLINGO-629
                 URL: https://issues.apache.org/jira/browse/OLINGO-629
             Project: Olingo
          Issue Type: Bug
          Components: odata2-core
    Affects Versions: V2 2.0.3
            Reporter: Alex
            Priority: Blocker


We have a client that consumes OData by calling functions like search() that 
should return a list of entities

<FunctionImport Name="Search" ReturnType="Collection(Feed.Bundle)" 
EntitySet="Bundles" m:HttpMethod="GET">
<Parameter Name="searchTerm" Type="Edm.String"/>
</FunctionImport>

the FunctionImport declared as
                List<FunctionImportParameter> parameters = new ArrayList<>();
                parameters.add(new 
FunctionImportParameter().setName("searchTerm").setType(EdmSimpleTypeKind.String));
                return new FunctionImport().setName(name)
                    .setParameters(parameters)
                    .setReturnType(new 
ReturnType().setTypeName(ENTITY_TYPE_FEED_BUNDLE).setMultiplicity(EdmMultiplicity.MANY))
                    .setEntitySet(ENTITY_SET_NAME_BUNDLES)
                    .setHttpMethod(ODataHttpMethod.GET.name());

When I do EntityProvider.writeFunctionImport(... i got exception that Array 
cannot be converted to Map.

I looked through the code and there are no support for serializing entities in 
function import 

https://github.com/apache/olingo-odata2/blob/6fd6f064d5d8ed97cd914b1378e988655270533a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/AtomEntityProvider.java#L343

by the way, other code rely on that feature, for example
https://github.com/apache/olingo-odata2/blob/2636dd5f79186003b9d1087ed03586efd7687f24/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/ODataJPAResponseBuilderDefault.java#L317

it won't work

Is that expected behavior or just not implemented yet?
the client uses MS implementation of OData maybe returning entities is not a 
standard feature but anyway jpa builder will fail too

please advise any solutions (i also consider to write servlet filter and 
process function imports manually..)

thanks,
alex 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to