Ho due classi di sospensione: una classe base e una classe estesa con campi aggiuntivi. (. Questi campi sono mappati da altre tabelle)Mappatura di più classi a una tabella in sospensione, senza colonna DTYPE
Ad esempio, ho:
@Entity
@Table(name="Book")
public class A {
private String ID;
private String Name;
// ...
}
@Entity
@Table(name="Book")
public class B extends A {
public String node_ID;
// ...
}
public class Node {
public String ID; // maps to B.node_ID
// ...
}
Come faccio a mappare questo in Hibernate? The hibernate documentation indica tre tipi di configurazioni di ereditarietà: una tabella per classe, una tabella con una colonna di tipi e una tabella di join, nessuna delle quali si applica qui.
Il motivo per cui ho bisogno di fare questo è perché la classe A proviene da un framework generico riutilizzato su più progetti e la classe B (e il nodo) sono estensioni specifiche di un progetto - non saranno più utilizzate. In futuro, potrei avere forse una classe C con un house_ID o qualche altro campo.
Modifica: Se provo la configurazione pseudo-codice sopra (due entità mappate sulla stessa tabella), ricevo un errore che la colonna DTYPE non esiste. L'HQL ha un "dove DTYPE =" A "aggiunto
Se queste classi sono mappati allo stesso tavolo, senza colonna discriminatore, come sarebbe Hibernate distinguere quale è quale? – axtavt
@axtavt questo è il punto, ogni istanza di B è anche una A. – ashes999