Hello everybody,

currently, I am working with OpenJPA in the Spring framework and try to 
implement the following:

I inherit certain subclasses from a mainclass. All these classes should be 
mapped to a single table, so I use InheritanceType.SINGLE_TABLE and add a 
discriminator value to each subclass.

Simplified, it looks like this:

@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="doc_type", 
discriminatorType=DiscriminatorType.STRING)
public abstract class Document {
 
// ...
 
}
 
@Entity
@DiscriminatorValue(value="Magazine")
public class Magazine extends Document {
 
// ...
 
}
 
@Entity
@DiscriminatorValue(value="Book")
public class Book extends Document {
 
// ...
 
}

Unfortunately, I get the following error message when I try to load data from 
the database: 

Exception in thread "main" org.springframework.dao.InvalidDataAccessApiUsageE 
xception: Could not map discriminator value "Book" to any known subclasses of 
the requested class "project.entities.Document" (known discriminator values: 
[Document, Magazine]).; nested exception is <openjpa-1.2.1-r752877:753278 
nonfatal user error> org.apache.openjpa.persistence.ArgumentException: Could 
not map discriminator value "Book" to any known subclasses of the requested 
class "project.entities.Document" (known discriminator values: [Document, 
Magazine]).

It seems that there are only known the main class and the subclass "Magazine", 
but there is a problem with "Book" (and some other classes inherited from 
"Document").

I do not have much experience with OpenJPA and Spring and thus I have no clue 
how to solve this problem. Anybody out there who has an idea or maybe had a 
similar problem?
Is there maybe something special I could have used accidentally for "Magazine", 
but not for the other classes?
-- 
Neu: GMX FreeDSL Komplettanschluss mit DSL 6.000 Flatrate + Telefonanschluss 
für nur 17,95 Euro/mtl.!* 
http://dslspecial.gmx.de/freedsl-surfflat/?ac=OM.AD.PD003K11308T4569a

Reply via email to