Konfigurieren von Hibernate zu setzen Sie Anführungszeichen um den Tabellennamen
Habe ich eine situation, wo ich versuche, erstellen Sie eine Tabelle namens "Benutzer" in Postgres, die wirft einen Fehler aufgrund Hibernate nicht setzen Tabellennamen in Anführungszeichen:
| Error 2012-02-27 23:06:58,782 [Thread-10] ERROR hbm2ddl.SchemaExport - Unsuccessful: create table user (id int8 not null, version int8 not null, account_expired bool not null, account_locked bool not null, email_address varchar(255) not null, enabled bool not null, first_name varchar(255) not null, last_name varchar(255) not null, mobile_number varchar(255) not null, "password" varchar(255) not null, password_expired bool not null, username varchar(255) not null unique, primary key (id))
Dies ist trotz der Angabe, dass Sie verwenden sollten, die PostgreSQLDialect in der DataSource.groovy:
dialect = org.hibernate.dialect.PostgreSQLDialect
Wie kann ich konfigurieren Ruhezustand zu setzen Sie Anführungszeichen um den Tabellennamen beim Umgang mit Postgres?
- Ich würde dringend empfehlen einen anderen Tabellennamen. Die Verwendung reservierter Wörter geben Ihnen alle Probleme vorbei, nicht nur in den Ruhezustand versetzt werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie zitieren, der name der Tabelle in der
mapping
block mit backticks. Hibernate wird, wandeln diese um, was der zitierte Ansatz ist für die Datenbank basiert auf dem Dialekt:Können Sie auch einfach benennen Sie die Tabelle für etwas anderes, das erfordert nicht zitieren/Flucht, z.B.
Diese Antwort könnte dir helfen: https://stackoverflow.com/a/3611916/947357
Es zeigt, wie zu zitieren Tabellennamen in Hibernate und JPA.
Angenommen, Sie sind nach dem gleichen tutorial, wie ich es Tue ("Getting started with Grails" von InfoQ) Sie haben schon verstanden, es bietet keine Deckung für PostgreSQL. Basierend auf dieser Beitrag:
oder