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