JPA "DTYPE" Ungültiger Bezeichner
Ich habe eine single-entity-Objekt Eine map 1 zu 1 mit der Tabelle und einem anderen entity-Objekt "AjoinB" erstreckte sich von der Einheit-Objekt und Verknüpfung mit einer anderen entity-Objekt. Ich bin immer diese "DTYPE" Ungültiger Bezeichner als Ergebnis dieser. Unten ist ein Beispiel
@Entity
@Table(name="TableA")
@NamedQuery(...)
public class A implements Serializable{
@EmbeddedId
private ABC id;
@Column(name="...")
//getters/setters
@Entity
@Table(name="TableA")
@NameQuery(...)
public class AjoinB extends A{
@OneToOne
@JoinColumn({...}
private B b;
//gettter/setters
Weiß jemand, wie das problem zu lösen. Ich weiß, tut Vererbung Sachen erzeugen würde, "DTYPE" aber meine Tabelle nicht haben, dass Spalte 🙁
Mehr klar, kann ich eine einzelne Tabelle Vererbung, ohne Diskriminator-Spalte? es macht keinen Sinn zu haben Diskriminator-Spalte in meiner Person
Wenn Sie "single table inheritance ohne Diskriminator" wie erwarten Sie, dass die Persistenz-Mechanismus, um festzustellen, welches Objekt den Typ jeder Zeile ist? durch Magie?
Dies ist nicht etwa die Vererbung. JPA behandelt es als Erbe, weil ich ausgedehnt von einer übergeordneten Klasse. Hier ist das problem 1. Ich erstelle Einheit (single entity und könnte jemand verwenden) 2. Ich möchte einen anderen Rechtsträger genannt-verbunden, die identisch ist, außer es gehört einem Verein, 3. Ich will keine Duplikate zu haben, Felder in Ein-trat, so erweiterte ich von Einem 4. Jetzt JPA denkt, das ist single table inheritance. Dies ist nicht etwa Auto-und Fahrzeug-problem.
JPA "denkt" etwas ist single table inheritance wenn Sie eine Klasse haben, die Vererbung der Entitäten und Sie definieren nicht das erbschaft-Strategie von der Wurzel-Klasse, um etwas anderes als eine einzige Tabelle.
Dies ist nicht etwa die Vererbung. JPA behandelt es als Erbe, weil ich ausgedehnt von einer übergeordneten Klasse. Hier ist das problem 1. Ich erstelle Einheit (single entity und könnte jemand verwenden) 2. Ich möchte einen anderen Rechtsträger genannt-verbunden, die identisch ist, außer es gehört einem Verein, 3. Ich will keine Duplikate zu haben, Felder in Ein-trat, so erweiterte ich von Einem 4. Jetzt JPA denkt, das ist single table inheritance. Dies ist nicht etwa Auto-und Fahrzeug-problem.
JPA "denkt" etwas ist single table inheritance wenn Sie eine Klasse haben, die Vererbung der Entitäten und Sie definieren nicht das erbschaft-Strategie von der Wurzel-Klasse, um etwas anderes als eine einzige Tabelle.
InformationsquelleAutor SpyClown | 2016-03-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist schwer zu diagnostizieren, ohne den kompletten stacktrace, aber wie Sie wahrscheinlich bereits wissen, die API-docs sagen:
Anderen Antworten (auch hier) deuten darauf hin, dass das hinzufügen einer expliziten
@DiscriminatorColumn
können möglicherweise das problem zu lösen. Allerdings würde ich der erste sein zugeben, es scheint nicht zu sein, eine schlüssige, generische Antwort.@DiscriminatorColumn
, die nicht in der Tabelle vorhanden sind, wäre es immer noch beschwert, dass es nicht finden können, die Spalte name. Ich Frage mich, ob ich verwenden könnte@DiscriminatorColumn
als eine vorhandene Spalte in der DatenbankInformationsquelleAutor Andrew Regan
Ich hier die Lösung gefunden EclipseLink JPA-Vererbung ohne Diskriminator-Spalte
InformationsquelleAutor SpyClown