[ 
https://issues.jboss.org/browse/SEAMJCR-21?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12619138#comment-12619138
 ] 

Simon Gunzenreiner commented on SEAMJCR-21:
-------------------------------------------

The following snipped works for me:

in OCMMappingStore.map()
      List<Field> fields = new ArrayList<Field>(); 
      addFields(clazz, fields);

with:

   void addFields(Class<?> clazz, List<Field> fieldList) {
          // Assumption: we also want to persist fields of object which are not 
themselves persistable
      Field[] fields = clazz.getDeclaredFields();
      fieldList.addAll(Arrays.asList(fields));
      Class<?> supr = clazz.getSuperclass();
      if (supr != Object.class) {
          // we never want to persist java.lang.Objects
          addFields(supr, fieldList);
      }
   }


> Properties from parent class should be mapped as well
> -----------------------------------------------------
>
>                 Key: SEAMJCR-21
>                 URL: https://issues.jboss.org/browse/SEAMJCR-21
>             Project: Seam JCR
>          Issue Type: Feature Request
>          Components: OCM
>            Reporter: Simon Gunzenreiner
>            Priority: Minor
>
> OCMMappingStore.map() currently does not map inherited fields, due to 
> considering only fields defined on the given class. I suggest to use  
> clazz.getFields() instead of clazz.getDeclaredFields().
> Also, this behaviour is not in-line with the usage of clazz.getMethods(), 
> which takes into account the accessor methods of parent classes (correct 
> behaviour).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
seam-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/seam-issues

Reply via email to