Postgres + Hibernate + Java-UUID
Will ich mit PostgreSQL native UUID-Typ mit einem Java-UUID. Ich bin mit Hibernate als meine JPA-provider und ORM. Wenn ich versuche zu speichern, es wird nur gespeichert, wie bytea in Postgres.
Wie kann ich dies tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, die neueste Entwickler-version des JDBC-Treibers (Derzeit 8.4 dev-700), oder warten auf die nächste release-version. (Bearbeitet, um hinzufügen: 8.4-701 freigegeben wurde)
Den release notes Erwähnung dieser änderung:
Hier ist ein repost von meiner Antwort auf Postgresql UUID unterstützt von Hibernate? ... ich weiß, diese Frage ist zwar alt, aber wenn jemand stolpert über Sie, das hilft Ihnen heraus.
Dieses Problem kann gelöst werden, indem folgende Anmerkung zu den UUID:
Warum der Ruhezustand nicht nur machen dies die default-Einstellung, ich könnte dir nicht sagen...
UPDATE: Es scheinen immer noch zu Problemen mit der
createNativeQuery
Methode öffnen Objekte, die UUID-Felder. Zum Glück, diecreateQuery
Methode so weit hat funktionierte gut für mich.könnten Sie versuchen, mit:
wo columnDefinition ist ein fragment des nativen SQL -
In nicht-JPA-Nutzung würde ich erstellen Sie eine UserType format der UUID als string, PostgreSQL akzeptiert, dann gib einfach den Namen der UserType Umsetzung wie der Spaltentyp.
Vielleicht können Sie bekommen UUID-Typ werden automatisch in einen String umgewandelt (uuid.sollte toString() geben Sie die kanonische 36-char-Darstellung)? DBs in der Regel konvertieren Sie die Dinge zuverlässig zwischen Strings und native Arten.
Versuchen, diese