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