bonsoir tout le monde;
j'ai un probleme avec l 'entité; j'ai deux table relationnelle:
1)la premiere table(chauffeur):
2) la deuxieme table(reservation):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 @Entity @Table(name = "chauffeur") @NamedQueries({ @NamedQuery(name = "Chauffeur.findAll", query = "SELECT c FROM Chauffeur c"), @NamedQuery(name = "Chauffeur.findByNumSom", query = "SELECT c FROM Chauffeur c WHERE c.numSom = :numSom"), @NamedQuery(name = "Chauffeur.findByNom", query = "SELECT c FROM Chauffeur c WHERE c.nom = :nom"), @NamedQuery(name = "Chauffeur.findByPrenom", query = "SELECT c FROM Chauffeur c WHERE c.prenom = :prenom"), @NamedQuery(name = "Chauffeur.findByDateNaissance", query = "SELECT c FROM Chauffeur c WHERE c.dateNaissance = :dateNaissance"), @NamedQuery(name = "Chauffeur.findByLieuNaissance", query = "SELECT c FROM Chauffeur c WHERE c.lieuNaissance = :lieuNaissance"), @NamedQuery(name = "Chauffeur.findByAdresse", query = "SELECT c FROM Chauffeur c WHERE c.adresse = :adresse"), @NamedQuery(name = "Chauffeur.findByTele", query = "SELECT c FROM Chauffeur c WHERE c.tele = :tele"), @NamedQuery(name = "Chauffeur.findByEmail", query = "SELECT c FROM Chauffeur c WHERE c.email = :email")}) public class Chauffeur implements Serializable { private static final long serialVersionUID = 1L; @Id @Basic(optional = false) @Column(name = "NUM_SOM") private Integer numSom; @Column(name = "NOM") private String nom; @Column(name = "PRENOM") private String prenom; @Column(name = "DATE_NAISSANCE") @Temporal(TemporalType.TIMESTAMP) private Date dateNaissance; @Column(name = "LIEU_NAISSANCE") private String lieuNaissance; @Column(name = "ADRESSE") private String adresse; @Column(name = "TELE") private String tele; @Column(name = "EMAIL") private String email; @OneToMany(mappedBy = "chauffeur") private List<Reservation> reservationList; public Chauffeur() { } ////////:
3) voilà le code d'insertion dans la table reservation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 @Entity @Table(name = "reservation") @NamedQueries({ @NamedQuery(name = "Reservation.findAll", query = "SELECT r FROM Reservation r"), @NamedQuery(name = "Reservation.findByIdResv", query = "SELECT r FROM Reservation r WHERE r.idResv = :idResv"), @NamedQuery(name = "Reservation.findByDateResv", query = "SELECT r FROM Reservation r WHERE r.dateResv = :dateResv"), @NamedQuery(name = "Reservation.findByDestination", query = "SELECT r FROM Reservation r WHERE r.destination = :destination"), @NamedQuery(name = "Reservation.findByObjetResv", query = "SELECT r FROM Reservation r WHERE r.objetResv = :objetResv"), @NamedQuery(name = "Reservation.findByDateDebut", query = "SELECT r FROM Reservation r WHERE r.dateDebut = :dateDebut"), @NamedQuery(name = "Reservation.findByDateFin", query = "SELECT r FROM Reservation r WHERE r.dateFin = :dateFin"), @NamedQuery(name = "Reservation.findByConfirmation", query = "SELECT r FROM Reservation r WHERE r.confirmation = :confirmation")}) public class Reservation implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false) @Column(name = "ID_RESV") private Integer idResv; @Column(name = "DateResv") @Temporal(TemporalType.TIMESTAMP) private Date dateResv; @Column(name = "destination") private String destination; @Column(name = "objetResv") private String objetResv; @Column(name = "DATE_DEBUT") @Temporal(TemporalType.TIMESTAMP) private Date dateDebut; @Column(name = "DATE_FIN") @Temporal(TemporalType.TIMESTAMP) private Date dateFin; @Column(name = "CONFIRMATION") private String confirmation; @OneToMany(cascade = CascadeType.ALL, mappedBy = "reservation") private List<Bon> bonList; @JoinColumn(name = "NumSOM", referencedColumnName = "NUM_SOM") @ManyToOne private Chauffeur chauffeur; public Reservation() { } ////
je veux insérer des données dans la table reservation, avec une valeur null dans le champ étrangère (chauffeur).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 @Override public Reservation createReservation(Reservation reservation) throws Exception { em.persist(reservation); return reservation; }
mais une erreur s'affiche dit:
svp; comment résoudre ce problème?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Caused by: java.lang.IllegalStateException: During synchronization a new object was found through a relationship that was not marked cascade PERSIST: JPA.Chauffeur[numSom=0].
Partager