Bonjour

Je ne trouve pas de correspondance à mon problème sur le net.

Je créé un objet puis je le sauve en base. Il se voit attribuer un numéro d'index (avec une séquence). Or, l'index retourné est différent de celui qui apparait réellement en base de données. Ce dernier est systématiquement supérieur de 1 à celui que j'ai dans l'application.

Le 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="Transports" table="transports" catalog="regulation">
		<id name="idTransports" type="int">
			<column name="idTransports" not-null="true" />
			<generator class="native" />
		</id>
		<many-to-one name="vehicule" class="Vehicule" fetch="select" lazy="false">
			<column name="Vehicule" not-null="false">
			</column>
		</many-to-one>
		<set name="transports" inverse="true" table="transport" lazy="false" order-by="rendezVous">
			<key>
				<column name="idTransport"></column>
			</key>
			<one-to-many class="Transport" />
		</set>
	</class>
</hibernate-mapping>
le code de sauvegarde

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
 
	public Transports sauveTransports(Transports transports){
		Session session = null;
		Transaction tx = null;
		try {
			session = getSessionFactory().openSession();
			tx = session.beginTransaction();
			session.saveOrUpdate(transports);
			tx.commit();
		} catch (Exception e) {
			if (tx != null) tx.rollback();
			logger.error(e.getMessage());
		} finally {
			logger.debug("Fin de sauveTransports");
			session.close();
		}
		return transports;
    }
un point d'arret sur la dernière ligne fait apparaitre transports.idtransports = 1
alors que la base montre 2

Une idée