Bonjour,
Je réalise un projet de boite mail et je rencontre un problème au niveau de la persistance de mes objets :
Box (classe mère)
------>Mailbox(classe fille)
------>Newsbox(classe fille)
Message(classe)
En gros je réalise une liaison avec des entités :
Une box est soi une newsbox(box de groupe) ou mailbox(box de personne), chaque mailbox peut avoir plusieurs message.
Classe Box
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 @Entity @Table public class Box implements IBox, Serializable{ @PersistenceContext(unitName="pu1") private EntityManager em; @Id @GeneratedValue(strategy=GenerationType.IDENTITY) int id; String name; @OneToMany(cascade = ALL, mappedBy="box",targetEntity=Message.class) private Collection<Message> messages = new ArrayList<Message>(); public Collection<Message> getMessages() { return messages; } public void setMessages(Collection<Message> messages) { this.messages = messages; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }
Classe Message
Classe Mailbox
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 @Stateless(name="box/Message") @Entity @Table public class Message implements Serializable { @PersistenceContext(unitName="pu1") private EntityManager em; @Id @GeneratedValue(strategy=GenerationType.IDENTITY) int id; String pfrom; String pto; String date; String subject; String body; boolean pread; @ManyToOne @JoinColumn(name="BOX_ID",nullable=false) private Box box; public Box getBox() { return box; } public void setBox(Box box) { this.box = box; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getPfrom() { return pfrom; } public void setPfrom(String pfrom) { this.pfrom = pfrom; } public String getPto() { return pto; } public void setPto(String pto) { this.pto = pto; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getBody() { return body; } public void setBody(String body) { this.body = body; } public boolean isPread() { return pread; } public void setPread(boolean pread) { this.pread = pread; }
La table se met bien en place mais par contre lorsque que je crée un message le champ ID_BOX(clé étrangère) dans la table message se met NULL
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 @Stateless(name="box/MailBox") @Entity @Table public class MailBox extends Box implements IMailBox, Serializable { @PersistenceContext(unitName="pu1") private EntityManager em; public MailBox() { super(); // TODO Auto-generated constructor stub }
http://www.imagup.com/data/1114091298.html
Merci d'avance de votre aide
Partager