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é:
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
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;
Voila mon persistence.xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5CREATE TABLE bvi_jeune ( id_jeune serial NOT NULL, -- Identifiant unique du jeune - autoincremente ...
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
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>
Et voila la trace d'erreur:
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();
Il essaie d'inserer à un id déjà existant, pourtant la classe et la table ont tous deux les clés auto increment.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2ERROR: duplicate key value violates unique constraint "pk_bvi_jeune"
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
Partager