[ 
https://issues.apache.org/jira/browse/OLINGO-52?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13837961#comment-13837961
 ] 

ASF subversion and git services commented on OLINGO-52:
-------------------------------------------------------

Commit 73765535a9080d402fe34d894d343dd2488e2232 in branch refs/heads/master 
from [~chandan.v.a]
[ 
https://git-wip-us.apache.org/repos/asf?p=incubator-olingo-odata2.git;h=7376553 
]

[OLINGO-52] - Support java.util.Set data type for JPA Relationship
properties

-> $expand
-> deep insert operations


Signed-off-by: Chandan V A <[email protected]>

> expand collection issue - Set support
> -------------------------------------
>
>                 Key: OLINGO-52
>                 URL: https://issues.apache.org/jira/browse/OLINGO-52
>             Project: Olingo
>          Issue Type: Bug
>          Components: odata2-jpa
>    Affects Versions: V2 1.1.0
>         Environment: Hibernate
>            Reporter: Carl J. Mosca
>            Assignee: Chandan V.A
>            Priority: Minor
>              Labels: JPA, collections, expand
>
> We have a model which employs Sets.  The JPAExpandCallback seems to be 
> expecting Lists for collections.
> The newly discovered "odata-debug" made finding this issue very easy. :)
> A diff of the code changes for a quick fix are below.  Because I ran into 
> this previously elsewhere, I wonder if a cleaner way to handle the 
> collections has already been added somewhere in the code base.
> @@ -100,8 +104,13 @@
>      List<EdmNavigationProperty> currentNavPropertyList = null;
>      EdmNavigationProperty currentNavigationProperty = 
> context.getNavigationProperty();
>      try {
> -      @SuppressWarnings({ "unchecked" })
> -      List<Object> listOfItems = (List<Object>) 
> inlinedEntry.get(context.getNavigationProperty().getName());
> +            List<Object> listOfItems = null;
> +            if (inlinedEntry.get(context.getNavigationProperty().getName()) 
> instanceof Set) {
> +                listOfItems = new ArrayList<Object>();
> +                listOfItems.addAll((Set) 
> inlinedEntry.get(context.getNavigationProperty().getName()));
> +            } else {
> +                listOfItems = (List<Object>) 
> inlinedEntry.get(context.getNavigationProperty().getName());
> +            }
>        if (nextEntitySet == null) {
>          nextEntitySet = 
> context.getSourceEntitySet().getRelatedEntitySet(currentNavigationProperty);
>        }



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to