Ich versuche Hibernate @OneToOne Annotation arbeiten mit 2 Klassen, Hito und Portada. Portada-Tabelle hat den foreing-Schlüssel von Hito, ein int-Attribut namens hito. Meine Entitäten wie folgt aussieht:Hibernate @OneToOne funktioniert nicht
Hito:
@Entity
@Table(name = "hito")
public class Hito implements Serializable {
//...other attributes
private Portada portada;
//...getters and setters from other attributes
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "hito")
public Portada getPortada(){ return portada;}
public void setPortada(Portada portada){ this.portada = portada;}
}
Portada:
@Entity
@Table(name = "portada")
public class Portada {
//...other attributes
private Hito hito;
//...getters and setters from other attributes
@OneToOne(fetch = FetchType.EAGER, optional = false)
@JoinColumn(name = "hito")
public Hito getHito() {return hito;}
public void setHito(Hito hito) {this.hito = hito;}
}
Als ich hito.getPortada() aufrufen, erwarte ich ein Portada Objekt, aber es gibt null zurück.
Irgendwelche Vorschläge? Vielen Dank im fortgeschrittenen
Ihre Tabellen haben keine bidirektionale Konfiguration, entfernen Sie die Hito-Instanz aus der Portada-Klasse. Entfernen Sie das gemappt von der getPortada() - Methode in Ihrer Hito-Klasse – mprabhat
@mprabhat Ich kann das nicht tun. Wenn ich mapped by Attribut von entfernen, gibt mir Hibernate einen Fehler. Was meinst du mit Entfernen der Hito-Instanz aus der Portada-Klasse? –
@mprabhat FEHLER: org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Unbekannte Spalte 'hito0_.portada_id' in 'Feldliste'. Meinst du hito Attribut entfernen? –