You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@olingo.apache.org by "Chandan V.A (JIRA)" <ji...@apache.org> on 2013/12/14 18:28:07 UTC

[jira] [Commented] (OLINGO-76) @MappedSuperclass

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

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

Hi Thiago,
The java reflection method getField( ) cannot access the private member variables defined in the super class.

If the field is could not be found then there should be a fallback mechanism to search for the fields type using its public modifier method namely "getXyz( )". I will try this.

regards
Chandan

> @MappedSuperclass
> -----------------
>
>                 Key: OLINGO-76
>                 URL: https://issues.apache.org/jira/browse/OLINGO-76
>             Project: Olingo
>          Issue Type: Bug
>          Components: odata2-jpa
>    Affects Versions: V2 1.0.0
>            Reporter: Thiago Assis
>            Assignee: Chandan V.A
>         Attachments: AbstractEntity.java, ExternalUser.java, ExternalUserProvider.java, InternalUser.java, InternalUserPassword.java
>
>
> When i use @MappedSuperclass i got the error below:
> Caused by: java.lang.NoSuchFieldException: creationDate
> 	at java.lang.Class.getDeclaredField(Class.java:1938)
> 	at org.apache.olingo.odata2.processor.core.jpa.access.model.JPATypeConvertor.convertToEdmSimpleType(JPATypeConvertor.java:83)
> 	... 75 more
> I suppose this is an error because the method olingo.odata2.processor.core.jpa.access.model.JPATypeConvertor.convertToEdmSimpleType should not use getDeclaredField (), but getFields () to search also the attributes of the parent class.
> try {
>         if ((currentAttribute != null)
>             && (currentAttribute.getDeclaringType().getJavaType().getDeclaredField(currentAttribute.getName())
>                 .getAnnotation(Temporal.class).value() == TemporalType.TIME)) {
>           return EdmSimpleTypeKind.Time;
>         } else {
>           return EdmSimpleTypeKind.DateTime;
>         }
>       } catch (NoSuchFieldException e) {
>         throw ODataJPAModelException.throwException(ODataJPAModelException.GENERAL.addContent(e.getMessage()), e);
>       } catch (SecurityException e) {
>         throw ODataJPAModelException.throwException(ODataJPAModelException.GENERAL.addContent(e.getMessage()), e);
>       }



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)