PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

org.postgresql.util.PSQLException :ERREUR :la relation app_user n'existe pas

PostgreSQL suit le standard SQL et dans ce cas cela signifie que les identifiants (noms de table, noms de colonne, etc.) sont forcés en minuscules, sauf lorsqu'ils sont entre guillemets. Ainsi, lorsque vous créez un tableau comme celui-ci :

CREATE TABLE APP_USER ...

vous obtenez en fait une table app_user . Apparemment, vous avez :

CREATE TABLE "APP_USER" ...

puis vous obtenez une table "APP_USER" .

Dans Spring, vous spécifiez une chaîne normale pour le nom de la table, en majuscules, mais qui est fusionnée dans une requête au serveur PostgreSQL sans guillemets. Vous pouvez vérifier cela en lisant les fichiers journaux de PostgreSQL :ils doivent afficher la requête générée par Spring suivie de l'erreur en haut de votre message.

Étant donné que vous avez très peu de contrôle sur la façon dont Spring construit les requêtes à partir d'entités, il est préférable d'utiliser des identifiants en minuscules standard SQL.