##Solution
Dans PostgreSQL vous devez spécifier le nom du schéma comme ceci :
@Table(name="table_name", schema = "myapp")
^^^^^^^^^^^^^^^^
##Longue histoire
vous avez cette erreur :
org.postgresql.util.PSQLException: ERROR: column user0_.id does not exist
car lorsque vous créez une base de données dans PostgreSQL , il crée un schéma par défaut nommé public , donc lorsque vous ne spécifiez pas le nom dans le Entity
alors Hibernate vérifiera automatiquement dans le public schéma.
##Bonnes pratiques
- N'utilisez pas de majuscules dans le nom de la
database
,schema
,tables
oucolumns
dans PostgreSQL . Sinon, vous devriez échapper ces noms avec des guillemets, et cela peut provoquer des erreurs de syntaxe, donc à la place, vous pouvez utiliser :
@Table(name="table_name", schema = "schema_name")
^^^^^^^^^^ ^^^^^^^^^^^
- le mot-clé USER est un mot clé réservé dans PostgreSQL regardez
+----------+-----------+----------+-----------+---------+
| Key Word |PostgreSQL |SQL:2003 | SQL:1999 | SQL-92 |
+----------+-----------+----------+-----------+---------+
| .... .... .... .... .... |
+----------+-----------+----------+-----------+---------+
| USER | reserved |reserved | reserved | reserved|
+----------+-----------+----------+-----------+---------+
- à la différence entre Dto et Entité sa bonne pratique est d'utiliser Entity à la fin du nom de votre Entity par exemple
UserEntity