Bonjour,
je commence avec Hibernate. Je suis en train de le tester avec Eclipse 3.2, hibernate 3, et une base MySQL5.
Je n'arrive pas a avoir un mapping de mon objet JAVA correct, j'ai tout le temps l'erreur:
ma classe net.yozine.Utilisateur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): net.yozine.Utilisateur
le code de géneration de ma tableMySQL5:
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 package net.yozine; import java.io.Serializable; public class Utilisateur implements Serializable { private Long id; private String email; private String nom; private String prenom; private Adresse adresse = new Adresse(); private String telDom; private String telPort; public Utilisateur() {} // constructeur sans arguments public Long getId() { return id; } private void setId(Long id) { // permet a hibernate d'initialiser l'id this.id = id; } public Adresse getAdresse() { return adresse; } public void setAdresse(Adresse adresse) { this.adresse = adresse; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getNom() { return nom; } public void setNom(String nom) { this.nom = nom; } public String getPrenom() { return prenom; } public void setPrenom(String prenom) { this.prenom = prenom; } public String getTelDom() { return telDom; } public void setTelDom(String telDom) { this.telDom = telDom; } public String getTelPort() { return telPort; } public void setTelPort(String telPort) { this.telPort = telPort; } }
et enfin mon fichier de mapping:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 CREATE TABLE `utilisateur` ( `email` varchar(30) NOT NULL, `nom` varchar(30) NOT NULL, `prenom` varchar(30) NOT NULL, `cp` varchar(5) default NULL, `teldom` varchar(10) default NULL, `telport` varchar(10) default NULL, `rue` varchar(50) default NULL, `ville` varchar(30) default NULL, PRIMARY KEY (`email`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Merci, de votre aide.
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 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="net.yozine.Utilisateur" table="`utilisateur`" > <id name="email" type="string" column="`email`" > <generator class="assigned" /> </id> <property name="nom" /> <property name="prenom" /> <property name="telDom" column="teldom" /> <property name="telPort" column="telport" /> <component name="adresse" class="net.yozine.Adresse"> <property name="rue" /> <property name="cp" /> <property name="ville" /> </component> </class> </hibernate-mapping>
Partager