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

Chandan V.A commented on OLINGO-683:
------------------------------------

Hello Arathi,
The issue is fixed with commit - 
http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/d0b3782c

Thanks
Kind Regards
Chandan

> Unable to query an entity using an int id
> -----------------------------------------
>
>                 Key: OLINGO-683
>                 URL: https://issues.apache.org/jira/browse/OLINGO-683
>             Project: Olingo
>          Issue Type: Bug
>          Components: odata2-jpa
>    Affects Versions: V2 2.0.3
>            Reporter: arathi m
>            Assignee: Chandan V.A
>             Fix For: V2 2.0.5
>
>
> I have a MySQL table with an int primary key. I exposed my database table 
> using an Odata service using Olingo-odata2 JPA processor. When I query my 
> entity set using this URL:
> http://host/emplist-web/emplist.svc/Customers(1)
> I get "Requested Resource not found exception". But the record exists with 
> id=1.
> I debugged code and found that the JPQL generated is Select E1.Customer from 
> Customers E1 where E1.id=1L. But since my id is an int, the JPQL should be  
> Select E1.Customer from Customers E1 where E1.id=1.
> I further debugged and the error is in evaluateComparingExpression of 
> org.apache.olingo.odata2.jpa.processor.core.ODataExpressionParser 
> evaluateComparingExpression method.
> This code:
> else if 
> (EdmSimpleTypeKind.Int64.getEdmSimpleTypeInstance().isCompatible(edmSimpleType))
>  {
>       uriLiteral = uriLiteral + JPQLStatement.DELIMITER.LONG; //$NON-NLS-1$
>     }
> adds the erroneous JPQL I mentioned earlier. The fix would be to replace 
> above with this
> else 
> if(EdmSimpleTypeKind.Int32.getEdmSimpleTypeInstance().equals(edmSimpleType))
>     {
>       uriLiteral = uriLiteral;
>     }
>     else if 
> (EdmSimpleTypeKind.Int64.getEdmSimpleTypeInstance().isCompatible(edmSimpleType))
>  {
>       uriLiteral = uriLiteral + JPQLStatement.DELIMITER.LONG; //$NON-NLS-1$
>     }



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

Reply via email to