PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

UUID persistente in PostgreSQL utilizzando JPA

Il driver PostgreSQL JDBC ha purtroppo scelto un modo per rappresentare codici di tipo non standard JDBC. Semplicemente li mappano tutti su Types.OTHER. Per farla breve, è necessario abilitare una speciale mappatura del tipo Ibernazione per la gestione delle mappature UUID (alle colonne del tipo di dati uuid specifico di postgres):

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

o più succintamente:

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

Un'altra opzione (migliore) consiste nel registrare org.hibernate.type.PostgresUUIDType come mappatura del tipo Hibernate predefinita per tutti gli attributi esposti come java.util.UUID. Questo è trattato nella documentazione @ http://docs.jboss.org/hibernate/orm/4.1/manual/en-US/html/ch06.html#types-registry