Générateur de séquence Hibernate

De jerome_meillant dans Menu mobile

25 jan 2013

Par défaut Hibernate choisi d’instancier la classe org.hibernate.id.SequenceHiloGenerator pour générer les IDs d’entités ayant déclaré une annotation du style :

...
@SequenceGenerator(name="jetonSequence", sequenceName="SEQ_T_ENTITE", schema="DROITS")
public class MonEntite extends AbstractEntity {
...

Le problème est qu’un bug subsiste dans Hibernate et qu’il ne sera pas corrigé (car SequenceHiloGenerator est déprécié dans les dernières versions d’hibernate). En effet l’attribut schema n’est pas pris en compte ce qui peut poser des problèmes lors de l’insertion de données depuis un schéma externe.

Pour corriger le problème il faut forcer Hibernate à utiliser les nouvelles implémentations de générateur en positionnant la variable hibernate.id.new_generator_mappings à true.
Exemple:

<util:properties id="hibernateProperties">
  <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect </prop>
  <prop key="hibernate.show_sql">${showSql}</prop>
  <prop key="hibernate.id.new_generator_mappings">true</prop>
</util:properties>

Commentaire

1 − un =

iMDEO recrute !

REJOIGNEZ-NOUS

A la recherche de nouveaux talents (développeurs web et mobile, chefs de projet,...)

Voir les annonces