spring-projects / spring-projects/spring-ldap
LDAP-305: Permit ODM to allow inheritance
@jzheaux is already working on this.
Since Apr 22, 2021.
- Dominant language
- Java
- Stars
- 375
- Forks
- 501
- Avg merge
- 6h 4m
- Merged PRs (30d)
- 63
Description
Demétrius Jubé (Migrated from LDAP-305) said:
I was trying do use some inheritance when using ODM. Looking in the Internet, I found out this thread:
http://forum.spring.io/forum/spring-projects/data/ldap/129952-permit-odm-to-allow-inheritance
But I could not find anything here to make that modification, so I am opening an issue to it.
The solution Fneuch proposed was as follow:
Hi Guys,
First of all, sorry for any english mistake.
Secondly, is it me or ODM doesn't allow hierarchical inheritance? I've made a little change and it seems to work fine.
In the constructor of class ObjectMetaData I've replaced:
Code:
//Field[] fields = clazz.getDeclaredFields();by
Code:
ArrayList<Field> fieldsTemp = new ArrayList<>(); fieldsTemp.addAll(Arrays.asList(clazz.getDeclaredFields())); Class<?> classTemp = clazz.getSuperclass(); while(!classTemp.equals(Object.class)) { fieldsTemp.addAll(Arrays.asList(classTemp.getDeclaredFields())); classTemp = classTemp.getSuperclass(); } // Get field meta-data - the @Attribute annotation Field[] fields = fieldsTemp.toArray(new Field[fieldsTemp.size()]);Can you correct me here? Is there something that I didn't see? Because on create, find, delete I've seen no problem with my test... I didn't checkout project to made a full change, just replace the class in my own project for testing.
How can I ask for that feature in a future version? Thanks for any information!
Sylvain aka Fneuch
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.