PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Persistierende UUID in PostgreSQL mit JPA

Der PostgreSQL-JDBC-Treiber hat einen unglücklichen Weg gewählt, um Typcodes darzustellen, die nicht dem JDBC-Standard entsprechen. Sie ordnen sie einfach allen Types.OTHER zu. Um es kurz zu machen, Sie müssen eine spezielle Hibernate-Typzuordnung für die Handhabung von UUID-Zuordnungen (zu Spalten des postgres-spezifischen uuid-Datentyps) aktivieren:

@Id
@Column(name = "customer_id")
@org.hibernate.annotations.Type(type="org.hibernate.type.PostgresUUIDType")
private UUID id;

oder kürzer:

@Id
@Column(name = "customer_id")
@org.hibernate.annotations.Type(type="pg-uuid")
private UUID id;

Eine andere (bessere) Option besteht darin, org.hibernate.type.PostgresUUIDType als standardmäßige Hibernate-Typzuordnung für alle Attribute zu registrieren, die als java.util.UUID verfügbar gemacht werden. Dies wird in der Dokumentation @ http://docs.jboss.org/hibernate/orm/4.1/manual/en-US/html/ch06.html#types-registry

behandelt