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 :
Code:
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 la classe personne
Code:
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;
}
}
voici mon fichier personne.hbm.xml
Code:
<?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>