Bonjour, voilà je travaille avec JBoss 4.0.2 et Hibernate3 pour pouvoir rendre persistante certaines classes.
J'ai donc une base de données MySQL dans laquelle j'ai mes tables qui correspondent à mes POJO dans ma couche métier.
Pour le mapping voila un exemple :
J'ai utilisé SchemaExport pour créer ma base,voici le fichier de schéma :
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 <class name="coucheMapping.Tvehicule" table="tvehicule"> <id name="vehId" type="long"> <column name="veh_id" /> <generator class="assigned" /> </id> <property name="vehModele" type="string"> <column name="veh_modele" length="15" not-null="true" /> </property> <property name="vehMarque" type="string"> <column name="veh_marque" length="15" not-null="true" /> </property> <property name="vehCategorie" type="string"> <column name="veh_categorie" length="15" not-null="true" /> </property> <property name="vehAgence" type="string"> <column name="veh_agence" length="15" not-null="true" /> </property> <property name="vehImmatriculation" type="string"> <column name="veh_immatriculation" length="15" not-null="true" /> </property> <property name="vehCouleur" type="string"> <column name="veh_couleur" length="15" not-null="true" /> </property> </class>
Et mon problème c'est que je n'arrive pas à faire fonctionner le générateur de clé primaire. J'arrive avec le code ci-dessous à entrer une seule fois un objet en base mais dès que j'essaye une 2eme fois il me dit que la valeur de la clé est dupliquée...
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 <hibernate-mapping> <class name="Vehicule" table="Tvehicule"> <id name="id" column="veh_id" type="long" unsaved-value="null"> <generator class="hilo"/> </id> <property name="modele" column="veh_modele" type="string" length="15" not-null="true"/> <property name="marque" column="veh_marque" type="string" length="15" not-null="true"/> <property name="categorie" column="veh_categorie" type="string" length="15" not-null="true"/> <property name="agence" column="veh_agence" type="string" length="15" not-null="true"/> <property name="immatriculation" column="veh_immatriculation" type="string" length="15" not-null="true"/> <property name="couleur" column="veh_couleur" type="string" length="15" not-null="true"/> </class> </hibernate-mapping>
Pour ma config j'utilise JBoss et ses fonctionnalités spécifiques à hibernate en déployant tout ce qu'il faut pour hibernate dans une archive .har...
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 InitialContext ctx = new InitialContext(); SessionFactory factory = (SessionFactory)ctx.lookup("java:/hibernate/AutoWorkSessionFactory"); Session hsession = factory.openSession(); Transaction tx = hsession.beginTransaction(); Tvehicule c = new Tvehicule(); c.setVehModele(s.getModele()); c.setVehMarque(s.getMarque()); c.setVehCategorie(s.getCategorie()); c.setVehAgence(s.getAgence()); c.setVehImmatriculation(s.getImmatriculation()); c.setVehCouleur(s.getCouleur()); hsession.save(c); tx.commit(); hsession.flush(); hsession.close();
Merci de me répondre
Partager