[
https://issues.jboss.org/browse/SEAMJCR-21?page=com.atlassian.jira.plugin...
]
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