Mes tables PostgreSQL ont des identifiants de type bigserial
, ce qui signifie qu'elles sont générées au moment où les lignes sont insérées (et donc, la valeur de la colonne id n'est pas fournie dans l'instruction INSERT
). J'ai de la difficulté à trouver la valeur correcte pour l'attribut <generator class="...">
dans mon fichier de mappage XML.Générateur d'id Hibernate approprié pour la colonne serial/bigserial postgres?
Le code ci-dessous est le plus proche que je trouve qui semble être le plus proche de Postgres, mais il effectue toujours un SELECT nextval(...)
sur la séquence avant l'insertion (et en incluant explicitement la valeur du champ id sur l'insert). Je veux juste que Hibernate n'inclue pas du tout la valeur du champ id, permettant à Postgres de faire son travail de génération de la valeur elle-même.
<id name="id" column="id" type="java.lang.Long">
<generator class="sequence">
<param name="sequence">my_sequence_name</param>
</generator>
</id>
Pour les nouvelles versions (JPA): http://stackoverflow.com/questions/4979746/mapping-postgresql-serial-type-with-hibernate-annotations –