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:
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
ma classe net.yozine.Utilisateur:
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;
	}
 
}
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
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;
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
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>
Merci, de votre aide.