sql >> Databasteknik >  >> RDS >> PostgreSQL

Bestående UUID i PostgreSQL med JPA

PostgreSQL JDBC-drivrutinen har tyvärr valt ett sätt att representera icke-JDBC-standardtypkoder. De mappar helt enkelt alla till Types.OTHER. Lång historia kort, du måste aktivera en speciell mappning av Hibernate-typ för att hantera UUID-mappningar (till kolumner i den postgres-specifika uuid-datatypen):

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

eller mer kortfattat:

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

Ett annat (bättre) alternativ är att registrera org.hibernate.type.PostgresUUIDType som standardmappning av Hibernate-typ för alla attribut som exponeras som java.util.UUID. Det finns i dokumentationen @ http://docs.jboss.org/hibernate/orm/4.1/manual/en-US/html/ch06.html#types-registry



  1. En introduktion till datautvinning

  2. 5 sätt att köra ett SQL-skript från en fil i SQLite

  3. Hur FIND_IN_SET() fungerar i MariaDB

  4. Migrera från MySQL till PostgreSQL - Vad du bör veta