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

L'interrogation de Postgresql à l'aide d'Hibernate (JPA) ne trouve pas la table

Postgres (utilisé pour, pas sûr sur le plus récent) convertit les noms de table en minuscules. C'est le mode opératoire préféré. Si vous enregistrez vos requêtes, vous verrez qu'hibernate peut ou non citer le nom de votre table (je suppose que ce n'est pas le cas).

Hibernate enregistre le modèle utilisateur dans Postgres

Honnêtement, si vous utilisez Postgres, vous devriez vraiment soit configurer la mise en veille prolongée correctement, soit, comme je le verrais, normaliser votre base de données car les tables ne devraient pas avoir de collision d'espace de noms (éliminant ainsi le problème).

//De l'article...

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

MODIFIÉ 31/07/12 :

Cette modification doit être effectuée sur les champs des tables de la manière suivante :

Pour @Column , changez le nom de la colonne en ajoutant échappé " :

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

Pour @JoinColumn , changez le nom de la colonne en ajoutant ` :

@JoinColumn(name = "`TP_MODEL`")

Vous devrez le faire manuellement sur les colonnes vous donnant des erreurs.