Hi Atanamir, I'm not a Generics expert, but I don't see any roadblocks with what you are attempting. You're basically trying to use Generics to create a template Class for creating Entity types, correct? Based on your notes, it sounds like the tricky part will to know when to use the additional reflection methods to get the root types. Or, maybe there's some "signal" to indicate that the root type has been found.
The best way to start is to open a (feature) JIRA. Add your notes and findings to this JIRA. This way, you can start a conversation and discussion on the topic and keep it all in one place. When you think you have something to share, then you could post a patch to the JIRA and ask for reviews/comments. Hopefully, you'll find a "committer partner" through this process and they can help guide you the process of getting your changes into the code base. I'm assuming you are looking at the trunk release for this enhancement? Good luck and Thanks for contributing! Kevin On Thu, May 13, 2010 at 9:16 PM, atanamir <[email protected]> wrote: > > Hi devs, > > I'd like to start work on adding generics support into OpenJPA. > Specifically, I'd like to allow the following: > > @MappedSuperclass > public class Identifiable<T> { > private T id; > > @Id > public T getId() { return id; } > private void setId(T i) { id = i; } > } > > @Entity > public class Concrete extends Identifiable<Integer> { > ... > } > > @Entity > public class CompoundConcrete extends Identifiable<CompoundConcrete.PK> { > @Embeddable > protected static class PK { > ... > } > } > > Currently, for example, the code fails when trying to get the metadata for > Concrete because it believes that Id is of type java.lang.Object, which "is > not a persistent type". This is because the getReturnType() method in > java.reflection.Method returns java.lang.Object if the return type is a > generic; additional API calls must be used. > > From my searches I've not found a precise bug that matches this exact > problem, but I've found several other bugs related to generics that have > not > been assigned to anyone yet. Hopefully, I'll be able to fix all the > generics-related bugs. > > With this in mind, is there any potential problems I should be aware of > before attempting to hack at the code? Anything you guys can foresee that > makes generics impossible? From what I've read, nothing in the JPA spec > refers to generics directly at all; but since Generics is a compile-time > transformation, I don't see why it shouldn't work with JPA/OpenJPA. > > Shall I open a bug with this exact problem also, before I get going? > > Thanks, > atanamir > -- > View this message in context: > http://openjpa.208410.n2.nabble.com/Generics-Support-tp5049201p5049201.html > Sent from the OpenJPA Developers mailing list archive at Nabble.com. >
