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