Oui Hibernate crée bien les séquences dans la base PostGreSQL mais il n'arrive pas à récupérer la valeur suivant pour faire l'insertion. Je suis passé en PostGreSQL 8.0.3 et ça ne marche pas mieux. Quand j'utilise @Id(generate = GeneratorType.SEQUENCE) ça donne
Code:
Hibernate: select next value for hibernate_sequence from dual_hibernate_sequence
Erreur PostGreSQL 8.0.3:
Code:
ERROR: relation "system_sequences" does not exist
ERROR: syntax error at or near "value" at character 13
Quand j'utilise @Id(generate = GeneratorType.IDENTITY) ça donne
Code:
Hibernate: insert into ABSTRACTNODE (..., id) values (..., null)
Erreur PostGreSQL 8.0.3:
Code:
ERROR: relation "system_sequences" does not exist
ERROR: null value in column "id" violates not-null constraint
Quand j'utilise @Id(generate = GeneratorType.AUTO) ça donne
Code:
Hibernate: insert into ABSTRACTNODE (..., id) values (..., null)
Erreur PostGreSQL 8.0.3:
Code:
ERROR: relation "system_sequences" does not exist
ERROR: null value in column "id" violates not-null constraint
J'ai réussi à modifier le type de mon id en utilisant les annotations suivantes:
Code:
...
@Id (generate = GeneratorType.AUTO)
@Column(columnDefinition="BIGSERIAL")
public Integer getId(){
...}
Avec cela le type de id est bien BIGSERIAL mais pour que cela fonctionne il faudrait que hibernate me génère une requête sans tenir compte du champ id. C'est à dire si dans ma table Personne j'ai les champs id, nom prenom, il faudrait que la requête générée soit:
insert into Personne (nom, prenom) values ('toto', 'tata') plutot que
insert into Personne (id, nom, prenom) values (null, 'toto', 'tata') parceque avec le null ça ne passe pas.
Comment est ce que je peux faire pour enlever le champ id de la requête générée? Merci et bonne soirée