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)