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 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
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 = 1
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; }
alors que la base montre 2
Une idée
Partager