##Решение
В PostgreSQL трябва да посочите името на схемата така:
@Table(name="table_name", schema = "myapp")
^^^^^^^^^^^^^^^^
##Дълга история
получавате тази грешка:
org.postgresql.util.PSQLException: ERROR: column user0_.id does not exist
защото когато създавате база данни в PostgreSQL , създава схема по подразбиране, наречена публична , така че когато не посочите името в Entity
тогава Hibernate ще провери автоматично в обществеността схема.
##Добри практики
- Не използвайте главни букви в името на
database
,schema
,tables
илиcolumns
в PostgreSQL . В противен случай трябва да избегнете тези имена с кавички и това може да причини синтактични грешки, така че вместо това можете да използвате:
@Table(name="table_name", schema = "schema_name")
^^^^^^^^^^ ^^^^^^^^^^^
- ключовата дума ПОТРЕБИТЕЛ е запазена ключова дума в PostgreSQL разгледайте
+----------+-----------+----------+-----------+---------+
| Key Word |PostgreSQL |SQL:2003 | SQL:1999 | SQL-92 |
+----------+-----------+----------+-----------+---------+
| .... .... .... .... .... |
+----------+-----------+----------+-----------+---------+
| USER | reserved |reserved | reserved | reserved|
+----------+-----------+----------+-----------+---------+
- до разлика между Dto и Обект добра практика е да използвате Entity в края на името на вашия Entity, например
UserEntity