You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@openjpa.apache.org by mkserkan <mk...@gmail.com> on 2007/12/13 15:08:19 UTC

Mixing inheritance strategies

<<
OpenJPA allows you to vary your inheritance strategy for each class, rather
than forcing a single strategy per inheritance hierarchy. See Section 7, “
Additional JPA Mappings ” in the Reference Guide for details.
>>

In my example, i can't make this feature work. Here are three classes User
Admin SuperAdmin :

@javax.persistence.Entity
@Table (name="X_USER")
@Inheritance(strategy=InheritanceType.JOINED)
public class User extends PersistentObject {
.....
}

@javax.persistence.Entity
@Table (name="X_ADMIN")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="discriminator",
discriminatorType=DiscriminatorType.STRING)
@DiscriminatorValue("admin")
public class Admin extends User {
...
}

@javax.persistence.Entity
@DiscriminatorValue("superadmin")
public class SuperAdmin extends Admin {
...
}

i first put @Inheritance(strategy=InheritanceType.SINGLE_TABLE) on the Admin
class, but didnt work and throwed an exception:

Type "test.model.Admin" uses a flat inheritance mapping, but declares a
table name of "X_ADMIN", which does not match the superclass table "X_USER".

Then i tried a different thing and changed the annotation configuration..

@javax.persistence.Entity
@Table (name="X_ADMIN")
@DiscriminatorValue("admin")
public class Admin extends User {

@javax.persistence.Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="discriminator",
discriminatorType=DiscriminatorType.STRING)
@DiscriminatorValue("superadmin")
public class SuperAdmin extends Admin {

This time it worked OK but with an exception. THERE was NO DISCRIMINATOR
COLUMN in X_ADMIN table. I know i am missing something. I looked at Section
7, “ Additional JPA Mappings ” but there is nothing relevant. So i
appreciate any help.
-- 
View this message in context: http://www.nabble.com/Mixing-inheritance-strategies-tp14316695p14316695.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.