Le pilote PostgreSQL JDBC a malheureusement choisi une manière de représenter les codes de type non standard JDBC. Ils les mappent simplement tous à Types.OTHER. Pour faire court, vous devez activer un mappage de type Hibernate spécial pour gérer les mappages UUID (aux colonnes du type de données uuid spécifique à postgres) :
@Id
@Column(name = "customer_id")
@org.hibernate.annotations.Type(type="org.hibernate.type.PostgresUUIDType")
private UUID id;
ou plus succinctement :
@Id
@Column(name = "customer_id")
@org.hibernate.annotations.Type(type="pg-uuid")
private UUID id;
Une autre (meilleure) option consiste à enregistrer org.hibernate.type.PostgresUUIDType comme mappage de type Hibernate par défaut pour tous les attributs exposés en tant que java.util.UUID. Cela est couvert dans la documentation @ http://docs.jboss.org/hibernate/orm/4.1/manual/en-US/html/ch06.html#types-registry