PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

org.postgresql.util.PSQLException:BŁĄD:kolumna user0_.id nie istnieje - Hibernacja

##Rozwiązanie

W PostgreSQL musisz podać nazwę schematu w następujący sposób:

@Table(name="table_name", schema = "myapp")
                          ^^^^^^^^^^^^^^^^

##Długa historia

masz ten błąd :

org.postgresql.util.PSQLException: ERROR: column user0_.id does not exist

ponieważ podczas tworzenia bazy danych w PostgreSQL , tworzy domyślny schemat o nazwie public , więc jeśli nie określisz nazwy w Entity następnie Hibernate sprawdzi automatycznie w publicznie schemat.

##Dobre praktyki

  1. Nie używaj wielkich liter w nazwie database , schema , tables lub columns w PostgreSQL . W przeciwnym razie powinieneś zastąpić te nazwy cudzysłowami, co może powodować błędy składniowe, więc zamiast tego możesz użyć :

@Table(name="table_name", schema = "schema_name")
             ^^^^^^^^^^             ^^^^^^^^^^^
  1. słowo kluczowe USER jest zarezerwowanym słowem kluczowym w PostgreSQL spójrz na

+----------+-----------+----------+-----------+---------+
| Key Word |PostgreSQL |SQL:2003  | SQL:1999  | SQL-92  |
+----------+-----------+----------+-----------+---------+
|  ....        ....       ....       ....       ....    |
+----------+-----------+----------+-----------+---------+
| USER     |  reserved |reserved  | reserved  | reserved|
+----------+-----------+----------+-----------+---------+
  1. do różnicy między Dto i Podmiot dobrą praktyką jest używanie Entity na końcu nazwy twojego Entity, na przykład UserEntity


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wyświetlić indeksy utworzone dla tabeli w postgresie

  2. Zwróć tylko wartości liczbowe z kolumny bazy danych PostgreSQL

  3. Wybierz wszystkie kolumny z wyjątkiem niektórych PostgreSQL

  4. Tworzenie sekwencji PostgreSQL do pola (które nie jest identyfikatorem rekordu)

  5. Heroku Postgresql z Google Datastudio