Bonjour
je débute avec hibernate. Je développe sous netbeans 5.5.
Lorsque je compile mon projet tout se passe bien jusqu'a ce que je veuille inserer un enregistrement dans ma base de données
je précise que je débute donc je fais un petit programme bidon avec une seule table dans ma base (MySQL 5) : Une table Personne qui contient vles champs id ( clé primaire) et nom
Le probleme est le suivant
lorsque je veut inserer une personne, en fait hibernate me dit qu'il ne peut pas inserer car le champ ID n'a pas de valeur par defaut or je croyais que c'était hibernate qui le générait lorsque l'on spécifiait dans le fichier personne.hbm.xml l'attriibut <générator class="native">. Ce n'est pas le cas ? Quelqun peut il maider ?
j'utilise ce code pour inserer :
Voici la classe personne
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 essionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); Session session = sessionFactory.openSession(); Transaction tx = null; try { tx = session.beginTransaction(); personne p = new personne("maurice"); session.save(p); session.flush(); tx.commit(); } catch(Exception e) { if(tx != null) tx.rollback(); System.out.println(e.getMessage()); } finally { sessionFactory.close(); }
voici mon fichier personne.hbm.xml
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 public class personne { private int id; private String nom; /** Creates a new instance of Personne */ public personne() { } public personne(String s) { this.nom = s; } public int getId() { return id; } public void setId(int i) { this.id = i; } public void setNom(String n) { this.nom = n; } public String getNom() { return this.nom; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="personne" table="personne"> <id name="id" type="int" column="id"> <generator class="native" /> </id> <property name="nom" type="string" not-null="true" /> </class> </hibernate-mapping>
Partager