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

Dotazování Postgresql pomocí Hibernate (JPA) nenajde tabulku

Postgres (dříve, u novějších si nejsem jistý) převádí názvy tabulek na malá písmena. To je preferovaný operační postup. Pokud zaznamenáte své dotazy, uvidíte, že hibernace může nebo nemusí citovat název vaší tabulky (hádám, že není).

Hibernace ukládajícího uživatelského modelu na Postgres

Upřímně řečeno, pokud používáte Postgres, měli byste buď správně nakonfigurovat hibernaci, nebo, jak bych se na to podíval, normalizovat vaši databázi, protože tabulky by neměly mít kolize jmenného prostoru (čímž se problém odstraní).

//Z článku...

@Entity
@Table(name="\"User\"")
public class User {
    ...
}

UPRAVENO 31. 7. 2012:

Tato změna musí být provedena v polích tabulek následujícím způsobem:

Pro @Column , změňte název sloupce přidáním escape ":

@Column(name = "\"C_MODEL\"") 

Pro @JoinColumn , změňte název sloupce přidáním `:

@JoinColumn(name = "`TP_MODEL`")

Budete to muset udělat ručně ve sloupcích, které vám dávají chyby.




  1. SQL vztah mnoho k mnoha mezi více tabulkami

  2. Jak zajistit, aby silverlight získal svá data z MySQL

  3. Jak aktualizovat sloupec ID znovu počínaje 1

  4. PostgreSQL - seskupení podle sloupce jsonb