Hey,
ich hab jetzt schon einige Topics zu Vererbung gelesen, aber für mein Problem noch keine Lösung gefunden. Ich habe folgende Klassen:
Die Klassen Game und Movie sind zur Zeit noch fast identisch, aber das ändert sich später noch. Dann habe ich verschiedene Klassen, die Titel benutzten. Die Titel wurden aber nicht als Titel erzeugt, sondern als Game oder Movie und dann bloß an ein Feld vom Typ Titel übergeben. Dazu hat Titel auch das Feld 'type' das ich auf Game oder Movie casten kann, wenn ich es benötige. Soweit so gut. Jetzt will ich die Titel mit Hibernate in der Datenbank speichern. Aber Hibernate weiß nicht, das der Titel eigentlich ein Game bzw ein Movie ist. Casten geht ja an der Stelle auch nich wirklich. Wie bekomm ich nun die Daten in die Datenbank?
MfG & Thx Bergmann.
ich hab jetzt schon einige Topics zu Vererbung gelesen, aber für mein Problem noch keine Lösung gefunden. Ich habe folgende Klassen:
Java:
@MappedSuperclass
public class Title implements Serializable{
public static final int TYPE_GAME = 0;
public static final int TYPE_MOVIE = 1;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long uid;
@Version
private int version;
private String name, description;
protected int type; //Typ des Titels - wird von Superklassen gesetzt
private String name, description;
protected int type; //Typ des Titels - wird von Superklassen gesetzt
/* ... */
}
@Entity
public class Game extends Title implements Serializable{
private String genre;
public String getGenre(){
return genre;
}
public void setGenre(String _genre){
genre = _genre;
}
@Override
public String toString() {
return "GAME: " + super.toString() + ", " + genre;
}
public Game(){
this("", "", "");
}
public Game(String _name, String _description, String _genre){
super(_name, _description);
genre = _genre;
type = TYPE_GAME;
}
}
@Entity
public class Movie extends Title implements Serializable{
private String genre;
public String getGenre(){
return genre;
}
public void setGenre(String _genre){
genre = _genre;
}
@Override
public String toString() {
return "MOVIE: " + super.toString() + ", " + genre;
}
public Movie(){
this("", "", "");
}
public Movie(String _name, String _description, String _genre){
super(_name, _description);
genre = _genre;
type = TYPE_MOVIE;
}
}
Die Klassen Game und Movie sind zur Zeit noch fast identisch, aber das ändert sich später noch. Dann habe ich verschiedene Klassen, die Titel benutzten. Die Titel wurden aber nicht als Titel erzeugt, sondern als Game oder Movie und dann bloß an ein Feld vom Typ Titel übergeben. Dazu hat Titel auch das Feld 'type' das ich auf Game oder Movie casten kann, wenn ich es benötige. Soweit so gut. Jetzt will ich die Titel mit Hibernate in der Datenbank speichern. Aber Hibernate weiß nicht, das der Titel eigentlich ein Game bzw ein Movie ist. Casten geht ja an der Stelle auch nich wirklich. Wie bekomm ich nun die Daten in die Datenbank?
MfG & Thx Bergmann.
Zuletzt bearbeitet: