You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@olingo.apache.org by "Alex (JIRA)" <ji...@apache.org> on 2015/04/15 22:58:00 UTC

[jira] [Created] (OLINGO-629) No support for ENTITY for EdmMultiplicity.MANY in FunctionImport

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)