IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

[Annotation] Problème incrémentation séquences


Sujet :

Hibernate Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 23
    Points : 24
    Points
    24
    Par défaut [Annotation] Problème incrémentation séquences
    Bonjour,

    Voilà je rencontre un petit problème avec une configuration par annotation. En effet, l'incrémentation de ma séquence lorsque j'utilise les annotations n'est pas bonne.
    Pour une même transaction lorsque je fais un INSERT la première valeur est multiplié par 50 puis la suite est bien incrémentée de 1.

    Par exemple :
    - Transaction 1 : 2 inserts. Je me retrouve avec les identifiants 50 et 51
    - Transaction 2 : 3 inserts. Je me retrouve avec les identifiants 100, 101 et 102

    Je suis sous postrges et si je regarde ma séquence j'ai la valeur START = 2 et j'ai bien : INCREMENT 1, MINVALUE 1

    Je ne comprend vraiment pas ce qui peut ce passer avec ma séquence. Je viens donc voir si quelqu'un aurait une idée d'où peut venir le problème.

    Ma déclaration :
    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
     
    @Entity
    @javax.persistence.SequenceGenerator(
        name="SEQ_REGISTRIES",
        sequenceName="metafor_catalog.registries_id_registry_seq"
    )
    @Indexed
    @Table(name = "metafor_catalog.registries")
    public class Metafor implements Serializable{
     
        private static final long serialVersionUID = 1L;
     
        @Id
        @DocumentId
        @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_REGISTRIES")
        @Column(name = "id_registry", nullable = false)
        private Integer registryId ;
    PS : Je ne sais pas si ça peut jouer mais j'utilise Hibernate Search.

    Merci d'avance.

    Julien

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Points : 90
    Points
    90
    Par défaut
    Ce fonctionnement sert à limiter les flux entre la base de données et hibernate : Hibernate ne fait appel à la séquence qu'une fois toutes les 50 insertions.

    Mais si tu souhaites vraiment que l'incrémentation se fasse de 1 tu peux ajouter un "allocationSize":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    @SequenceGenerator(name = "SEQ_REGISTRIES", 
         sequenceName = "metafor_catalog.registries_id_registry_seq", 
         allocationSize = 1)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 23
    Points : 24
    Points
    24
    Par défaut
    Un grand merci à toi plsavary.

    Je ne connaissais pas ce principe de limitation de flux sur les séquences.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de séquence avec Hibernate annotation
    Par GabriHell dans le forum Hibernate
    Réponses: 1
    Dernier message: 29/07/2008, 17h52
  2. problème incrémentation en fonction d'une variable
    Par polo42 dans le forum VBA Access
    Réponses: 10
    Dernier message: 07/08/2007, 16h13
  3. [AJAX] Séquence avec AJAX
    Par lapin_hobbit dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/11/2006, 14h18
  4. Problème : incrémentation !! perl a fumé ?
    Par Ickou dans le forum Langage
    Réponses: 11
    Dernier message: 30/11/2005, 17h40
  5. problème de séquences
    Par alliance dans le forum Oracle
    Réponses: 14
    Dernier message: 27/10/2005, 11h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo