1

Postgresql で UUID を使用するプロジェクトに JPA (Hibernate) を追加しています。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