Salut a tous,
j'ai les 2 table suivantes:
parent=>enfant=>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE TABLE parent ( nom character varying NOT NULL, CONSTRAINT parent_pkey PRIMARY KEY (nom) )l'insertion d'un parent se fait sans probleme mais je rencontre un probleme lors de l'insertion d'un enfant dans la base
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE TABLE enfant ( "nomEnfant" character varying NOT NULL, parent character varying, CONSTRAINT enfant_pkey PRIMARY KEY ("nomEnfant"), CONSTRAINT enfant_parent_fkey FOREIGN KEY (parent) REFERENCES parent (nom) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION )
j'ai l'exception suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public void ajoutEnfantParent(String nomEnfant, String nomParent) { //entité parent Parent p=new Parent(nomParent); //entité enfant Enfant e=new Enfant(nomEnfant); e.setParent(p); parentFacade.create(p); enfantFacade.create(e); }
voila les entities
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 L'élément du batch 0 insert into enfant (parent, nomEnfant) values (momo, toto) a été annulé. Appeler getNextException pour en connaître la cause. SQL Error: 0, SQLState: 42703 ERROR: column "nomenfant" of relation "enfant" does not exist Could not synchronize database state with session
Que faire ?
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84 /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package entity; import java.io.Serializable; import javax.persistence.Basic; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; /** * * @author Hamza */ @Entity @Table(name = "enfant") @NamedQueries({@NamedQuery(name = "Enfant.findAll", query = "SELECT e FROM Enfant e"), @NamedQuery(name = "Enfant.findByNomEnfant", query = "SELECT e FROM Enfant e WHERE e.nomEnfant = :nomEnfant")}) public class Enfant implements Serializable { private static final long serialVersionUID = 1L; @Id @Basic(optional = false) @Column(name = "nomEnfant") private String nomEnfant; @JoinColumn(name = "parent", referencedColumnName = "nom") @ManyToOne private Parent parent; public Enfant() { } public Enfant(String nomEnfant) { this.nomEnfant = nomEnfant; } public String getNomEnfant() { return nomEnfant; } public void setNomEnfant(String nomEnfant) { this.nomEnfant = nomEnfant; } public Parent getParent() { return parent; } public void setParent(Parent parent) { this.parent = parent; } @Override public int hashCode() { int hash = 0; hash += (nomEnfant != null ? nomEnfant.hashCode() : 0); return hash; } @Override public boolean equals(Object object) { // TODO: Warning - this method won't work in the case the id fields are not set if (!(object instanceof Enfant)) { return false; } Enfant other = (Enfant) object; if ((this.nomEnfant == null && other.nomEnfant != null) || (this.nomEnfant != null && !this.nomEnfant.equals(other.nomEnfant))) { return false; } return true; } @Override public String toString() { return "entity.Enfant[nomEnfant=" + nomEnfant + "]"; } }
Merci d'avance.
Partager