sql >> Base de Datos >  >> RDS >> PostgreSQL

UUID persistente en PostgreSQL usando JPA

Desafortunadamente, el controlador JDBC de PostgreSQL ha elegido una forma de representar códigos de tipo no estándar de JDBC. Simplemente los asignan a Types.OTHER. Para resumir, debe habilitar una asignación de tipo especial de Hibernate para manejar asignaciones de UUID (a columnas del tipo de datos uuid específico de Postgres):

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

o más sucintamente:

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

Otra (mejor) opción es registrar org.hibernate.type.PostgresUUIDType como la asignación de tipos predeterminada de Hibernate para todos los atributos expuestos como java.util.UUID. Eso está cubierto en la documentación @ http://docs.jboss.org/hibernate/orm/4.1/manual/en-US/html/ch06.html#types-registry