sql >> Databasteknik >  >> RDS >> PostgreSQL

org.postgresql.util.PSQLEUndantag:FEL:kolumnen user0_.id finns inte - Viloläge

##Lösning

I PostgreSQL du måste ange namnet på schemat så här:

@Table(name="table_name", schema = "myapp")
                          ^^^^^^^^^^^^^^^^

##Lång berättelse

du fick det här felet :

org.postgresql.util.PSQLException: ERROR: column user0_.id does not exist

eftersom när du skapar en databas i PostgreSQL skapar det ett standardschema med namnet offentligt , så när du inte anger namnet i Entity då kommer Hibernate att kontrollera automatiskt i offentliga schema.

##Bra metoder

  1. Använd inte stora bokstäver i namnet på database , schema , tables eller columns i PostgreSQL . Annars bör du undvika dessa namn med citattecken, och det kan orsaka syntaxfel, så istället kan du använda :

@Table(name="table_name", schema = "schema_name")
             ^^^^^^^^^^             ^^^^^^^^^^^
  1. sökordet USER är ett reserverat sökord i PostgreSQL ta en titt på

+----------+-----------+----------+-----------+---------+
| Key Word |PostgreSQL |SQL:2003  | SQL:1999  | SQL-92  |
+----------+-----------+----------+-----------+---------+
|  ....        ....       ....       ....       ....    |
+----------+-----------+----------+-----------+---------+
| USER     |  reserved |reserved  | reserved  | reserved|
+----------+-----------+----------+-----------+---------+
  1. till skillnaden mellan Dto och Entitet det är bra att använda Entity i slutet av namnet på din Entity, till exempel UserEntity


  1. PL SQL:Hur man visar nanosekunder av en TIMESTAMP

  2. Använda en SQL-vy från en Entity Framework Code Första version 5

  3. Rails - hitta endast poster där det finns_många associerade poster

  4. Hur man ställer in databastidszon för en AWS RDS-instans