[
https://issues.apache.org/jira/browse/OLINGO-251?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stephan Klevenz updated OLINGO-251:
-----------------------------------
Attachment: entity-writer-can-serialize-additional-links.patch
> Handling insert (OData POST of entity) with reverenced to an existing entity
> ----------------------------------------------------------------------------
>
> Key: OLINGO-251
> URL: https://issues.apache.org/jira/browse/OLINGO-251
> Project: Olingo
> Issue Type: Bug
> Components: odata2-core
> Reporter: Stephan Klevenz
> Assignee: Stephan Klevenz
> Attachments: entity-writer-can-serialize-additional-links.patch
>
>
> Use case: I want to post a new Category entity by referring to an existing
> product.
> 1. POST/create call to
> http://services.odata.org/(S(egpbfjhhvili4slwaq1p2lvt))/V2/OData/OData.svc/Categories
> With the following payload in the rest client
> ATOM Payload for POST:
> <entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"
> xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
> xmlns="http://www.w3.org/2005/Atom"
> xml:base="http://services.odata.org/(S(lebb5euydx3m3xt5r2rqmou4))/V2/OData/OData.svc/">
> <id>http://services.odata.org/(S(lebb5euydx3m3xt5r2rqmou4))/V2/OData/OData.svc/Categories(1)</id>
> <title type="text">Beverages</title>
> <updated>2014-03-19T10:31:49Z</updated>
> <author>
> <name />
> </author>
> <link rel="edit" title="Category" href="Categories(1)" />
> <link
> rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Products"
> type="application/atom+xml;type=feed" title="Products" href="Products(0)" />
> <category term="ODataDemo.Category"
> scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
> <content type="application/xml">
> <m:properties>
> <d:ID m:type="Edm.Int32">999</d:ID>
> <d:Name>Foodie</d:Name>
> </m:properties>
> </content>
> </entry>
> Point to be noted here is the link reference to Products(0).
> 2. I get http response as 201.
> 3. Now, GET/READ call to
> http://services.odata.org/(S(egpbfjhhvili4slwaq1p2lvt))/V2/OData/OData.svc/Categories(999)?$expand=Products
> gives response with Products (0) as inline property (ODataResponse.xml can
> be checked).
> I would like to know how to handle this when I try to achieve it through
> olingo library. What other information should be given to
> EntityProvider.writeEntry API.
> The signature of this API is
> ODataResponse
> org.apache.olingo.odata2.api.ep.EntityProvider.writeEntry(String contentType,
> EdmEntitySet entitySet, Map<String, Object> data,
> EntityProviderWriteProperties properties) throws EntityProviderException
> The information about the referenced entity [Products(0) in this case] cannot
> be part of data (map). Could you please help us understanding how to handle
> this.
--
This message was sent by Atlassian JIRA
(v6.2#6252)