Bonjour,

Je cherche a récupérer une valeur unique. J'ai donc créé en base, une séquence.

Le problème est pour récupérer cette valeur. J'aimerai continuer à passer par hibernate pour ce qui est de laccès à la base de données et ne pas utiliser de JDBC directement (Est ce une bonne méthode?).

Pour l'instant j'ai une méthode qui fonctionne mais que j'aimerai éviter car je la trouve pas propre du tout (Ai je raison?).

Avec le mapping suivant je crée un objet que je sauvegarde (session.save()) puis je rollback ma transaction. J'obtient ainsi le numéro de la session. Si je commite de nombreuses erreurs apparaissent car hibernate essait de me persister cette valeur dans la classe sequenceDTO.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 28 ao?t 2007 11:27:18 by Hibernate Tools 3.2.0.b9 -->
<hibernate-mapping>
    <class name="XXX.dto.SequenceDTO" schema="public">
        <id name="id" type="long">
               <generator class="sequence" >
            	        <param name="sequence">seq</param>
               </generator>
        </id> 
    </class>
</hibernate-mapping>
Existe t il une "bonne" méthode pour récupérer la valeur d'une séquence?

Merci par avance.