Hibernate: How can I join 2 classes in one table?
So, I'm pretty new to Hibernate and I have a problem.
I have an abstract class (the super-class, class Super), and 5 subclasses which should use the proprieties from the class Super and add a new propriety (a new column)
So how can I do this? Should I extend the class Super from java, or it's enough to join the classes using a JPA annotation.
Here is the second problem. How can I have 1 table for 2 classes. Someone (smarter than me) told me to use the @JoinTable, but form开发者_JAVA技巧 my searches with google, I think I need to use @Inheritance(strategy=InheritanceStrategy.JOINED)
Can I use the @JoinTable too?
Yours is a case of inheritance:
- add the
@Inheritance(stretegy=InheritanceStrategy.SINGLE_TABLE)
annotation on yourSuper
- add the
@DiscriminatorColumn
annotation (and setting its attributesname
anddiscriminatorType
) (again on theSuper
) - on each subclass
extend
theSuper
, and add the annotation@DiscriminatorValue
, with different value for each of the subclasses.
If you are new to Hibernate, you should read its documentation. Inheritance strategies are explained here and using annotations to express inheritance strategy is explained here
精彩评论