I'm adding JPA (Hibernate) to a project that uses uuids in Postgresql. The uuids are the Postgresql uuid type.
I've followed these instructions and added Hibernate annotations like this:
@Column(name = "uid")
@Type(type="pg-uuid")
private UUID uid;
Hibernate supposedly added support for Postgres UUIDs in Hibernate 3.6. I've tried Hibernate 3.6 and 4.0 but both throw the Exception below.
The Exception shows that the Postgresql driver is trying to convert the uuid to a long. I've tried the 9.0-801.jdbc4 and 9.1-901.jdbc4 Postgres drivers. Do I need to get a different database driver?
Caused by: org.postgresql.util.PSQLException: Bad value for type long : dbada1e4-a165-4601-b34e-d08428cd81df
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.toLong(AbstractJdbc2ResultSet.java:2796)
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getLong(AbstractJdbc2ResultSet.java:2019)
at org.postgresql.jdbc4.Jdbc4ResultSet.getBlob(Jdbc4ResultSet.java:52)
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getBlob(AbstractJdbc2ResultSet.java:335)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.hibernate.engine.jdbc.internal.proxy.AbstractResultSetProxyHandler.continueInvocation(AbstractResultSetProxyHandler.java:104)
... 32 more