PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

org.postgresql.util.PSQLException:ГРЕШКА:колона user0_.id не съществува - Хибернация

##Решение

В PostgreSQL трябва да посочите името на схемата така:

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

##Дълга история

получавате тази грешка:

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

защото когато създавате база данни в PostgreSQL , създава схема по подразбиране, наречена публична , така че когато не посочите името в Entity тогава Hibernate ще провери автоматично в обществеността схема.

##Добри практики

  1. Не използвайте главни букви в името на database , schema , tables или columns в PostgreSQL . В противен случай трябва да избегнете тези имена с кавички и това може да причини синтактични грешки, така че вместо това можете да използвате:

@Table(name="table_name", schema = "schema_name")
             ^^^^^^^^^^             ^^^^^^^^^^^
  1. ключовата дума ПОТРЕБИТЕЛ е запазена ключова дума в PostgreSQL разгледайте

+----------+-----------+----------+-----------+---------+
| Key Word |PostgreSQL |SQL:2003  | SQL:1999  | SQL-92  |
+----------+-----------+----------+-----------+---------+
|  ....        ....       ....       ....       ....    |
+----------+-----------+----------+-----------+---------+
| USER     |  reserved |reserved  | reserved  | reserved|
+----------+-----------+----------+-----------+---------+
  1. до разлика между Dto и Обект добра практика е да използвате Entity в края на името на вашия Entity, например 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. Липсваща таблица при материализиран изглед

  2. SELECT или PERFORM във функция PL/pgSQL

  3. Как да се съединят външно две таблици (главна и подтаблица много към едно), за да получите само ЕДИН елемент от втората таблица?

  4. Geo Django mac OS X

  5. Тип на Java в JDBC към Postgres ltree