sql >> Databáze >  >> RDS >> PostgreSQL

org.postgresql.util.PSQLException:ERROR:vztah app_user neexistuje

PostgreSQL se řídí standardem SQL a v takovém případě to znamená, že identifikátory (názvy tabulek, názvy sloupců atd.) jsou nuceny dávat malá písmena, s výjimkou případů, kdy jsou uvedeny v uvozovkách. Takže když vytvoříte tabulku takto:

CREATE TABLE APP_USER ...

ve skutečnosti získáte tabulku app_user . Zřejmě ano:

CREATE TABLE "APP_USER" ...

a pak získáte tabulku "APP_USER" .

Na jaře zadáte běžný řetězec pro název tabulky velkými písmeny, ale ten se spojí do dotazu na server PostgreSQL bez uvozovek. Můžete to zkontrolovat přečtením souborů protokolu PostgreSQL:měl by ukazovat dotaz, který Spring vygeneroval, následovaný chybou v horní části vaší zprávy.

Vzhledem k tomu, že máte velmi malou kontrolu nad tím, jak Spring vytváří dotazy z entit, je lepší používat malé identifikátory podle standardu SQL.



  1. MySql select IN klauzule řetězec oddělený čárkou

  2. Sloupec závisí na hodnotě jiného sloupce

  3. Je v pořádku mít několik DAO?

  4. Jak pomocí php počítejte vložení pole dvojice slov (řetězec) do MySQL