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 :

Probleme de generatedID hibernate


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut Probleme de generatedID hibernate
    Bonjour,
    J'ai un problème sur lequel je bloque complètement.
    J'ai une classe Jeune que je mappe sur une table dans une base postGresql,
    Voila la declaration de mon entité:
    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
    @Table(name = "bvi_jeune")
    public class JeuneEntity implements Serializable {
     
    	/**
         * 
         */
    	private static final long serialVersionUID = -5578132637752343973L;
    	private int idJeune;
    ...
    @Id
    	@Column(name = "id_jeune", nullable = false, unique = true)
    	@GeneratedValue(strategy = GenerationType.AUTO)
     
    	public int getIdJeune() {
    		return idJeune;
    Et voila le code de creation de ma table mappée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CREATE TABLE bvi_jeune
    (
      id_jeune serial NOT NULL, -- Identifiant unique du jeune - autoincremente
    ...
    Voila mon persistence.xml :
    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
     
    <persistence-unit name="testProject" transaction-type="RESOURCE_LOCAL">
           <non-jta-data-source/>
          <properties>
             <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
    		 <property name="hibernate.hbm2ddl.auto" value="create-update" />
    		 <property name="hibernate.query.factory_class" value="org.hibernate.hql.classic.ClassicQueryTranslatorFactory" /> 
        	 <property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
        	<property name="hibernate.connection.url" value="jdbc:postgresql://serveur:5430/testBd"/>
        	 <property name="hibernate.connection.username" value="test" />
        	 <property name="hibernate.connection.password" value="test" />
        	 <property name="dialect" value="net.sf.hibernate.dialect.PostgreSQLDialect" />
        	<property name="show_sql" value="true"/>
        	 <property name="hibernate.jdbc.batch_size" value="0"/>
          	<property name="hibernate.jdbc.use_streams_for_binary" value="true"/>
          </properties>
       </persistence-unit>
    Voila le code d'insertion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    tx=em.getTransaction();
                    tx.begin();
                    JeuneEntity  jeuneEntity = new JeuneEntity();
                    jeuneEntity.setLbNom("test");
                    jeuneEntity.setLbPrenom("test");
                    jeuneEntity.setDtNaissance(new Date());
                    jeuneEntity.setDtCreation(new Date());
                    jeuneEntity.setCdCreUser("userTest");
                    em.persist(jeuneEntity);
                    tx.commit();
    Et voila la trace d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ERROR: duplicate key value violates unique constraint "pk_bvi_jeune"
    Il essaie d'inserer à un id déjà existant, pourtant la classe et la table ont tous deux les clés auto increment.
    Toutes mes classes et mes tables du projet sont completement en auto, et les insertions s'y deroulent très bien, il n'y a que celle là qui bloque.
    Je pige rien du tout sur la récupération auto incrementale de cette table de jeunes.
    Quelqu'un peut me dire où j'ai fauté?
    Merci

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    En fait je crois avoir trouvé la solution,
    Dans ma base les clés primaires possédaient une clé séquentielle (colonne séquentielle) , alors que coté java ma stratégie de clé était automatique.
    Du coup les 2 mondes n'étaient pas synchro.
    Ne pouvant pas pour l'instant casser la politique coté base de donnée postgres (c'est à dire passer les clés simplement en auto increment), j'ai passé ma stratégie hibernate à IDENTITY, et donc tout seul hybernate va chercher les valeurs de clés dans cette colonne.
    Dites moi svp, cela peut il poser un souci plus tard?
    Car j'ai envie de passer toutes les autres classes persistantes en IDENTITY, cette politique est elle portable sur une autre base de données?
    Merci d'avance pour vos réponses.

Discussions similaires

  1. Probleme de cast Hibernate
    Par kramer Mc Barreth dans le forum Hibernate
    Réponses: 3
    Dernier message: 27/11/2007, 13h56
  2. probleme avec struts+hibernate
    Par crossmen dans le forum Struts 1
    Réponses: 5
    Dernier message: 23/05/2007, 19h18
  3. probleme avec struts+hibernate
    Par crossmen dans le forum Struts 1
    Réponses: 3
    Dernier message: 17/05/2007, 19h07
  4. probleme avec map + hibernate
    Par maxf1 dans le forum Hibernate
    Réponses: 1
    Dernier message: 27/03/2007, 10h44
  5. problem parsing configuration/hibernate.cfg.xml
    Par allstar dans le forum Hibernate
    Réponses: 2
    Dernier message: 25/08/2006, 07h23

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