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
le code de sauvegardeCode:
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>
un point d'arret sur la dernière ligne fait apparaitre transports.idtransports = 1Code:
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; }
alors que la base montre 2
Une idée