Witam, mam problem co do mapowania relacji, chodzi mi o wiele do wielu, analogiczne przypadki działają, ten natomiast nie, prosiłbym o pilną pomoc, bo projekt muszę oddać w sobotę.
@Entity
@Table(name = "goscie", catalog = "hotel1", schema = "")
@NamedQueries({@NamedQuery(name = "Goscie.findAll", query = "SELECT g FROM Goscie g"), @NamedQuery(name = "Goscie.findByIdRek", query = "SELECT g FROM Goscie g WHERE g.idRek = :idRek"), @NamedQuery(name = "Goscie.findByImie", query = "SELECT g FROM Goscie g WHERE g.imie = :imie"), @NamedQuery(name = "Goscie.findByNazwisko", query = "SELECT g FROM Goscie g WHERE g.nazwisko = :nazwisko"), @NamedQuery(name = "Goscie.findByAdres", query = "SELECT g FROM Goscie g WHERE g.adres = :adres"), @NamedQuery(name = "Goscie.findByKodPocztowy", query = "SELECT g FROM Goscie g WHERE g.kodPocztowy = :kodPocztowy"), @NamedQuery(name = "Goscie.findByMiasto", query = "SELECT g FROM Goscie g WHERE g.miasto = :miasto"), @NamedQuery(name = "Goscie.findByWoj", query = "SELECT g FROM Goscie g WHERE g.woj = :woj"), @NamedQuery(name = "Goscie.findByKonferencja", query = "SELECT g FROM Goscie g WHERE g.konferencja = :konferencja")})
public class Goscie implements Serializable {
@Transient
private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id_rek")
private Integer idRek;
@Basic(optional = false)
@Column(name = "imie")
private String imie;
@Basic(optional = false)
@Column(name = "nazwisko")
private String nazwisko;
@Basic(optional = false)
@Column(name = "adres")
private String adres;
@Basic(optional = false)
@Column(name = "kod_pocztowy")
private String kodPocztowy;
@Basic(optional = false)
@Column(name = "miasto")
private String miasto;
@Basic(optional = false)
@JoinColumn(name = "woj", referencedColumnName = "id_rek")
@ManyToOne
private Wojewodztwa woj;
@Basic(optional = false)
@JoinColumn(name = "konferencja", referencedColumnName = "id_rek")
@ManyToOne
private Konferencja konferencja;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "rezerwujacy")
private List<Rezerwacje> rezerwacjeCollection;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idOsoby")
private List<RezListaOsob> rezListaOsobCollection;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idOsoby1")// do tego się pluje
private List<PokListaOsob> pokListaOsobCollection;
public Goscie() {
}
public Goscie(Integer idRek) {
this.idRek = idRek;
}
public Goscie(Integer idRek, String imie, String nazwisko, String adres, String kodPocztowy, String miasto, Wojewodztwa woj, Konferencja konferencja) {
this.idRek = idRek;
this.imie = imie;
this.nazwisko = nazwisko;
this.adres = adres;
this.kodPocztowy = kodPocztowy;
this.miasto = miasto;
this.woj = woj;
this.konferencja = konferencja;
}
//get, set
}
@Entity
@Table(name = "pok_lista_osob")
@NamedQueries({@NamedQuery(name = "PokListaOsob.findAll", query = "SELECT p FROM PokListaOsob p"), @NamedQuery(name = "PokListaOsob.findByIdRek", query = "SELECT p FROM PokListaOsob p WHERE p.idRek = :idRek")})
public class PokListaOsob implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "id_rek")
private Integer idRek;
@Basic(optional = false)
@JoinColumn(name = "id_pokoju", referencedColumnName = "id_rek")
@ManyToOne(optional = false)
private Pokoje idPokoju;
@Basic(optional = false)
@JoinColumn(name = "id_osoby", referencedColumnName = "id_rek")
@ManyToOne(optional = false)
private Goscie idOsoby1;
public PokListaOsob() {
}
public PokListaOsob(Integer idRek) {
this.idRek = idRek;
}
//get, set
Błąd:
Internal Exception: Exception [TOPLINK-7244] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.ValidationException
Exception Description: An incompatible mapping has been encountered between [class rezerwacjahotelowa.Goscie] and [class rezerwacjahotelowa.PokListaOsob]. This usually occurs when the cardinality of a mapping does not correspond with the cardinality of its backpointer.
at oracle.toplink.essentials.exceptions.PersistenceUnitLoadingException.exceptionSearchingForPersistenceResources(PersistenceUnitLoadingException.java:143)
at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.createEntityManagerFactory(EntityManagerFactoryProvider.java:169)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:110)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83)
Pozdrawiam