sql >> Database >  >> RDS >> PostgreSQL

org.postgresql.util.PSQLException:FOUT:relatie app_user bestaat niet

PostgreSQL volgt de SQL-standaard en in dat geval betekent dat dat identifiers (tabelnamen, kolomnamen, enz.) gedwongen worden om kleine letters te gebruiken, behalve wanneer ze tussen aanhalingstekens staan. Dus als je een tabel als deze aanmaakt:

CREATE TABLE APP_USER ...

je krijgt eigenlijk een tabel app_user . Blijkbaar deed je dat:

CREATE TABLE "APP_USER" ...

en dan krijg je een tabel "APP_USER" .

In Spring specificeert u een normale tekenreeks voor de tabelnaam, in hoofdletters, maar die wordt gesplitst in een query naar de PostgreSQL-server zonder aanhalingstekens. U kunt dit controleren door de logbestanden van PostgreSQL te lezen:het zou de query moeten tonen die Spring heeft gegenereerd, gevolgd door de fout bovenaan uw bericht.

Aangezien je heel weinig controle hebt over hoe Spring query's van entiteiten construeert, kun je beter kleine-letter-ID's volgens SQL-standaard gebruiken.



  1. Oracle sql - datumaftrekking binnen een functie

  2. Fluent NHibernate kan MySql.Data niet laden van GAC in debug-modus van een test

  3. Gebeurtenissen in javascript met volledige kalender uit de database invullen

  4. SQL-syntaxisprobleem en/of codeprobleem? Index viel buiten de grenzen van de array.