1

我正在将 JPA (Hibernate) 添加到在 Postgresql 中使用 uuids 的项目中。uuid 是 Postgresql uuid 类型。

我已经按照这些说明添加了 Hibernate 注释,如下所示:

@Column(name = "uid")
@Type(type="pg-uuid")
private UUID uid;

Hibernate 据说在 Hibernate 3.6 中增加了对 Postgres UUID 的支持。我已经尝试过 Hibernate 3.6 和 4.0,但都抛出了下面的异常。

异常表明 Postgresql 驱动程序正在尝试将 uuid 转换为 long。我已经尝试过 9.0-801.jdbc4 和 9.1-901.jdbc4 Postgres 驱动程序。我需要获得不同的数据库驱动程序吗?

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
4

0 回答 0