##Solución
En PostgreSQL tienes que especificar el nombre del esquema así:
@Table(name="table_name", schema = "myapp")
^^^^^^^^^^^^^^^^
##Larga historia
tienes este error:
org.postgresql.util.PSQLException: ERROR: column user0_.id does not exist
porque cuando creas una base de datos en PostgreSQL , crea un esquema predeterminado llamado público , por lo que cuando no especifica el nombre en la Entity
entonces Hibernate verificará automáticamente en el público esquema.
##Buenas prácticas
- No use letras mayúsculas en el nombre de la
database
,schema
,tables
ocolumns
en PostgreSQL . De lo contrario, debe escapar estos nombres con comillas, y esto puede causar errores de sintaxis, por lo que en su lugar puede usar:
@Table(name="table_name", schema = "schema_name")
^^^^^^^^^^ ^^^^^^^^^^^
- la palabra clave USUARIO es una palabra clave reservada en PostgreSQL echar un vistazo
+----------+-----------+----------+-----------+---------+
| Key Word |PostgreSQL |SQL:2003 | SQL:1999 | SQL-92 |
+----------+-----------+----------+-----------+---------+
| .... .... .... .... .... |
+----------+-----------+----------+-----------+---------+
| USER | reserved |reserved | reserved | reserved|
+----------+-----------+----------+-----------+---------+
- a la diferencia entre Dto y Entidad es una buena práctica usar Entity al final del nombre de su Entidad, por ejemplo,
UserEntity