Bonjour à tous,
j'ai un problème dans mon application :
J'ai deux tables :
La table PERSONNE contient ID, NOM, Prenom. PRIMARY KEY ID, mappé en auto increment dans hibernate.
la table AGE contient ID, AG. PRIMARY KEY ID, FOREIGN KEY sur ID de la table Personne.
Mes PO :
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 public class Personne { private long id; private String nom; private String prenom; private Age age; /** * Accesseur de id * * @return obtention du id. */ public long getId() { return this.id; } /** * Modificateur de id * * @param pId id à affecter. */ public void setId(final long pId) { this.id = pId; } /** * Accesseur de nom * * @return obtention du nom. */ public String getNom() { return this.nom; } /** * Modificateur de nom * * @param pNom nom à affecter. */ public void setNom(final String pNom) { this.nom = pNom; } /** * Accesseur de prenom * * @return obtention du prenom. */ public String getPrenom() { return this.prenom; } /** * Modificateur de prenom * * @param pPrenom prenom à affecter. */ public void setPrenom(final String pPrenom) { this.prenom = pPrenom; } /** * Accesseur de age * * @return obtention du age. */ public Age getAge() { return this.age; } /** * Modificateur de age * * @param pAge age à affecter. */ public void setAge(final Age pAge) { this.age = pAge; } }Mes mapping :
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 public class Age { // Identifiant de la personne private long id; // Age de la personne private int age; // Table mère private Personne personne; /** * Accesseur de age * * @return obtention du age. */ public int getAge() { return this.age; } /** * Modificateur de age * * @param pAge age à affecter. */ public void setAge(final int pAge) { this.age = pAge; } /** * Accesseur de id * * @return obtention du id. */ public long getId() { return this.id; } /** * Modificateur de id * * @param pId id à affecter. */ public void setId(final long pId) { this.id = pId; } /** * Accesseur de personne * * @return obtention du personne. */ public Personne getPersonne() { return this.personne; } /** * Modificateur de personne * * @param pPersonne personne à affecter. */ public void setPersonne(final Personne pPersonne) { this.personne = pPersonne; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <hibernate-mapping> <class name="fr.sopra.formation.Formation.J2EE.Hibernate.TP2.access.dao.po.Age" table="AGE"> <id name="id" type="long"> <column name="AG_ID" /> <generator class="foreign"> <param name="property">personne</param> </generator> </id> <one-to-one name="personne" class="fr.sopra.formation.Formation.J2EE.Hibernate.TP2.access.dao.po.Personne" constrained="true"/> <property name="age" type="int"> <column name="AG_AGE" /> </property> </class> </hibernate-mapping>Mon problème est qu'il faut que Personne instancit Age, qui elle meme instancit Personne. Du coup au niveau de SPRING, j'ai une boucle : Personne instancit Age, qui instancit Personne, qui instancit Age, ....
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 <hibernate-mapping> <class name="fr.sopra.formation.Formation.J2EE.Hibernate.TP2.access.dao.po.Personne" table="PERSONNE"> <id name="id" type="long"> <column name="PR_ID" /> <generator class="increment" /> </id> <property name="nom" type="java.lang.String"> <column name="PR_NOM" /> </property> <property name="prenom" type="java.lang.String"> <column name="PR_PRENOM" /> </property> <one-to-one name="age" class="fr.sopra.formation.Formation.J2EE.Hibernate.TP2.access.dao.po.Age" cascade="save-update" /> </class> </hibernate-mapping>
Quelqu'un aurait-il une idée?
Partager