Guten Morgen allerseits,
ich setze mich derzeit mit OpenJPA und Spring auseinander und habe folgendes vor:
Ich leite mehrere Klassen von einer Hauptklasse ab. Gemappt soll das Ganze allerdings in nur einer Tabelle werden, also wende ich InheritanceType.SINGLE_TABLE an und gebe den Unterklassen einen Diskriminator-Wert.
Das ganze Management wird bei mir vom Spring Framework übernommen.
Das Ganze schaut dann so aus:
Nun erhalte ich beim Aufruf leider folgende Fehlermeldung:
Offenbar sind aus irgendeinem Grund nur die Hauptklasse und die Unterklasse Magazine bekannt. Mit Book (und einigen weiteren Klassen, die ebenfalls von Document abgeleitet sind) gibt es anscheinend ein Problem.
Da ich mit beidem noch nicht lange arbeite, bin ich mir nicht sicher, ob das Problem in Spring, OpenJPA oder doch bei mir (wohl am wahrscheinlichsten) liegt. Hat jemand eine Idee? Gibt es noch Besonderheiten bei @Inheritance zu beachten, die bei Magazine zufällig von mir eingebaut worden sein könnten und bei den anderen Klassen nicht?
ich setze mich derzeit mit OpenJPA und Spring auseinander und habe folgendes vor:
Ich leite mehrere Klassen von einer Hauptklasse ab. Gemappt soll das Ganze allerdings in nur einer Tabelle werden, also wende ich InheritanceType.SINGLE_TABLE an und gebe den Unterklassen einen Diskriminator-Wert.
Das ganze Management wird bei mir vom Spring Framework übernommen.
Das Ganze schaut dann so aus:
Java:
@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 {
// ...
}
Nun erhalte ich beim Aufruf leider folgende Fehlermeldung:
Exception in thread "main" org.springframework.dao.InvalidDataAccessApiUsageException: 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]).
Offenbar sind aus irgendeinem Grund nur die Hauptklasse und die Unterklasse Magazine bekannt. Mit Book (und einigen weiteren Klassen, die ebenfalls von Document abgeleitet sind) gibt es anscheinend ein Problem.
Da ich mit beidem noch nicht lange arbeite, bin ich mir nicht sicher, ob das Problem in Spring, OpenJPA oder doch bei mir (wohl am wahrscheinlichsten) liegt. Hat jemand eine Idee? Gibt es noch Besonderheiten bei @Inheritance zu beachten, die bei Magazine zufällig von mir eingebaut worden sein könnten und bei den anderen Klassen nicht?
Zuletzt bearbeitet: