Bon Hibernate id du générateur pour postgres série/bigserial de la colonne?
Mes tables PostgreSQL id est de type bigserial
, ce qui signifie qu'ils sont générés au moment de l'insertion de lignes (et donc, la colonne id de la valeur n'est pas fournie dans le INSERT
déclaration). Je vais avoir de la difficulté à trouver la bonne valeur pour le <generator class="...">
attribut dans mon fichier de mappage XML.
Le code ci-dessous est le plus proche que j'ai trouvé qui semble être le plus proche pour Postgres, mais c'est toujours de l'exécution d'une SELECT nextval(...)
sur la séquence avant de l'insérer (et incluant explicitement le champ id de la valeur sur l'insertion). Je veux juste Hibernate afin de ne pas inclure le champ id de la valeur, ce qui permet Postgres pour faire son travail de la 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>
Vous devez vous connecter pour publier un commentaire.
C'est sans-papiers, mais vous pouvez réellement utiliser un
identity
générateur avec PostgreSQL lorsque le PK est de typeSERIAL
ouBIGSERIAL
:Voir
HB-875et HHH-1675 de fond sur ce.De ce que j'ai lu:
doit travailler plus vite que:
La séquence générateur tombe dans le Non-insérer POID générateurs décrit comme ceci:
Alors que l'identité du générateur est Post-insérer POID générateurs groupe:
Citations ont été prises à partir de NHibernate 3.0 livre de cuisine.
Essayé de suivre et cela a fonctionné: