##Lösung
In PostgreSQL Sie müssen den Namen des Schemas wie folgt angeben:
@Table(name="table_name", schema = "myapp")
^^^^^^^^^^^^^^^^
##Lange Geschichte
Sie haben diesen Fehler:
org.postgresql.util.PSQLException: ERROR: column user0_.id does not exist
denn wenn Sie eine Datenbank in PostgreSQL erstellen , erstellt es ein Standardschema namens public , also wenn Sie den Namen nicht in Entity
angeben dann wird Hibernate automatisch im öffentlichen Bereich nachsehen Schema.
##Gute Praktiken
- Verwenden Sie keine Großbuchstaben im Namen der
database
,schema
,tables
odercolumns
in PostgreSQL . Andernfalls sollten Sie diese Namen mit Anführungszeichen maskieren, was zu Syntaxfehlern führen kann, also können Sie stattdessen :
verwenden
@Table(name="table_name", schema = "schema_name")
^^^^^^^^^^ ^^^^^^^^^^^
- das Schlüsselwort USER ist ein reserviertes Schlüsselwort in PostgreSQL sehen Sie sich an
+----------+-----------+----------+-----------+---------+
| Key Word |PostgreSQL |SQL:2003 | SQL:1999 | SQL-92 |
+----------+-----------+----------+-----------+---------+
| .... .... .... .... .... |
+----------+-----------+----------+-----------+---------+
| USER | reserved |reserved | reserved | reserved|
+----------+-----------+----------+-----------+---------+
- to Unterschied zwischen Dto und Entität Es empfiehlt sich, Entity am Ende des Namens Ihrer Entität zu verwenden, zum Beispiel
UserEntity