Comment résoudre hibernate erreur: la répétition d'une colonne dans la cartographie de l'entité?
SALUT, j'ai le modèle suivant:
@Entity
class Flight{
private Airport airportFrom;
private Airport airportTo;
@OneToOne(fetch=FetchType.LAZY,optional=false)
public Airport getAirportFrom(){
return this.airportFrom;
}
@OneToOne(fetch=FetchType.LAZY,optional=false)
public Airport getAirportTo(){
return this.airportTo;
}
}
@Entity
class Airport{
private Integer airportId;
@Id
public Integer getAirportId(){
this.airportId;
}
}
Et j'obtiens cette erreur:
org.hibernate.MappingException: Repeated column in mapping for entity: model.entities.Flight column: airportId (should be mapped with insert="false" update="false")
J'ai déjà essayé d'ajouter @Column(name="airportFrom) et @Column(name="airportTo") en vertu de chaque @OneToOne, mais j'ai eu cette erreur: "@column(s) non autorisé sur un @onetoone propriété"
OriginalL'auteur Neuquino | 2010-11-20
Vous devez vous connecter pour publier un commentaire.
C'est les annotations @JoinColumn vous avez besoin, pas @Colonne.
etc
(et comme Frotthowe mentionné, il ne sembler un peu étrange, pour des Vols à OneToOne avec les aéroports. Je dois l'avouer, généralement en ignorant le domaine et en supposant que les noms de certains pseudo non-sens pour faciliter la question 🙂 )
OriginalL'auteur Affe
@OneToOne
est faux. Cela voudrait dire que chaque Aéroport n'a qu'un seul Vol. Utilisation@ManyToOne
. Et vous devez spécifier la colonne qui fait référence à la provenance et à l'Aéroport de id par@JoinColumn
OriginalL'auteur FRotthowe
Votre
Flight
classe n'a pas d'id défini. Il est normal pour une entité dispose d'un id, et je crois que cela peut être lié à votre problème.OriginalL'auteur Don Roby
J'utilise pour ma table, au lieu de les Aéroports, j'ai Villes:
OriginalL'auteur radeklos
Utilisation
@JoinColumn
avec@OneToOne
Également noter que les paresseux ne fonctionnera pas dans ce cas.
OriginalL'auteur Alexey