J'ai reçu cette exception lorsque j'essaie d'obtenir la liste à l'aide de NamedQuery:
ci-dessous j'ai mentionné le code mentionné ci-dessous : P> Entity Code de classe d'entité: strong> p> DAO Implément code: Strong > p> veuillez fournir une solution à cette exception. p> p> org.hibernate.exception.sqlgammareXception: Impossible d'exécuter la requête code> p>
5 Réponses :
Obtenez la requête SQL que Hibernate génère (en utilisant hibernate.show_sql ou, de préférence, SQL Logging ) et l'exécuter contre la base de données vous-même. Cela vous aidera probablement à vous diriger dans la bonne direction. P>
J'ai essayé d'utiliser hibernate.show_sql mais tout ce que je reçois est insérer dans les valeurs de table (colonne) (?) Code> Comment pouvons-nous réellement voir le vrai SQL et non seulement un groupe de ? code> marques?
était confronté au même problème pendant un certain temps et a compris que le problème était dû au nom de la table étant différent du nom de la classe (ou de l'entité) de la base de données. Ajout de l'annotation @TAble (nom = rétical_tabl_name) et fonctionnait. P>
On dirait que cette question est peu ancienne mais une fois de toute façon une fois que j'ai ajouté ci-dessous la ligne d'hibernation de fichiers de configuration, il a fonctionné pour moi.
<property name="show_sql">true</property>
Essayez celui-ci, cela pourrait fonctionner. Il a parfaitement travaillé pour moi.
1) Annotation de niveau de classe. P>
Query qry2 = sf.getCurrentSession().getNamedQuery("USER_DETAILS.byName") ;
qry2.setString(0, "Angad Bansode");
List<UserDetails> user = qry2.list();
for (UserDetails userDetails : user) {
System.out.println("User Details by named native query name = " + userDetails.getUserName() + ", aadhaar no = " + userDetails.getAadharNo());
}
Pour moi, il manquait l'accès à la séquence de la clé primaire d'incrémentation automatique. Après avoir ajouté que cette erreur a été résolue.
GRANT USAGE, SELECT ON ALL
SEQUENCES IN SCHEMA public
TO "${user-name}";;
Avez-vous essayé juste "des Tblusers t"? C'est la syntaxe HQL correcte.
@Oolaf - "Sélectionnez T de Tblusers T" est aussi correct HQL
Vous devez montrer toute la trace de la pile. SQLGRAMMAREXCEPTION signifie SQL (comme traduit par Hibernate) n'a pas été accepté par votre base de données. Assurez-vous que la table existe (dans le schéma approprié).