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

Java EE Discussion :

gestion des clés primaires avec EJB3 !


Sujet :

Java EE

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 48
    Points : 18
    Points
    18
    Par défaut gestion des clés primaires avec EJB3 !
    Bonjour

    Ma question concerne la gestion des ID dans les EJB3.
    En fait, J'ai une succession des Valeurs prises par les ID qui semble assez bizare.

    Quand j'execute mon client, les ID générés dans la table T prennent toujours des valeurs croissantes, OK, mais le problème est que même si je redémarre le serveur Jboss, ou encore écrase la table T, ces valeurs ne sont pas remises à zéro à la prochaine exécution!

    En plus, si mon client agit sur deux tables T et T1 successivement, les valeurs des ID générées sur les deux tables sont successives :
    exemple: je crée un element sur T, son ID attribué est 100, T1 est vide, je crée alors un éléments dedans, l'id qui lui sera attribué est alors 101 !!!!!!!!!

    Alors auriez vous une piste pour séparer les valeurs des ID?

    Je suis sous Jboss 4.2, Oracle9i et eclipse. J'utilise un seul fichier de persistance avec une seule unité pour toute l'appli!
    voici comment je gère la création des ID

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO )
    Mais ceci aussi me donne le même résultat!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    @Id
    @GeneratedValue
    et voici mon unité de persistance:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?xml version="1.0" encoding="UTF-8"?>
    	<persistence version="1.0">
    		<persistence-unit name="Ma_persistence">
    			<jta-data-source>java:OracleDS</jta-data-source> 
      			<provider>org.hibernate.ejb.HibernatePersistence</provider> 
     			<properties>
      				<property name="hibernate.hbm2ddl.auto" value="update" /> 
      				<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9Dialect" /> 
      			</properties>
      		</persistence-unit>
    	</persistence>
    Merci d'avance pour vos avis.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 48
    Points : 18
    Points
    18
    Par défaut
    Alors... aucune soluce ??

  3. #3
    Membre confirmé Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Points : 554
    Points
    554
    Par défaut
    La gestion de l'id automatique est géré par ton SGBD. C'est de ce côté qu'il faut aller voir...

    Mais pourquoi est-ce que cela te dérange ? En théorie, tu n'es pas sensé te soucier de cette valeur...

  4. #4
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 766
    Points : 1 267
    Points
    1 267
    Par défaut
    Avec Mysql, quand je fais des unit-tests, mon compteur grimpe. Si je redemarre le serveur, le compteur se met à la dernière primary value. Je suppose que ca dépend des options du moteur de la bdd, ou de celui du moteur de Persistence (Toplink, hibernate...)

    Les options et les fichiers de eprsistence, moins t'y touches, mieux tu te portes

  5. #5
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 103
    Points
    103
    Par défaut
    tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="masequence")
    masequence etant une sequence que tu definis dans ta bdd avec un incremant de 1

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 48
    Points : 18
    Points
    18
    Par défaut
    Ok ça marche ....merci pour toutes vos interventions.
    Oui c'est vrai qu'on s'en fou un peu de ces valeurs... mais bon, je craints que cela puisse me créer d'éventuels problèmes dans l'avenir.

    Je vous tiendrai au courant en cas où je mettrai une soluce en œuvre.

    Merci encore fois.

  7. #7
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2008
    Messages : 254
    Points : 188
    Points
    188
    Par défaut
    Salut,

    comment les ids sot gérer :


    en effet lorqu'on fait le deploiement de notre EJB, il va creer une table dans la base de données 'seuqence' donc à chauqe transaction il incremente le numéro enregistrer dans cette table....


    je sais pas si j'ai repondu à ta question?

Discussions similaires

  1. Réponses: 7
    Dernier message: 08/07/2014, 10h55
  2. Gestion des clés primaires et étrangères
    Par jonrod dans le forum Designer
    Réponses: 5
    Dernier message: 10/04/2012, 10h38
  3. comment avoir la gestion des clés primaires avec sql serveur/EF
    Par olivier57b dans le forum Entity Framework
    Réponses: 12
    Dernier message: 12/06/2011, 14h46
  4. [EJBQL] [EJB3] Gestion des clés etrangères
    Par niouma dans le forum Java EE
    Réponses: 1
    Dernier message: 20/06/2008, 09h47
  5. Réponses: 5
    Dernier message: 12/03/2007, 10h21

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