Ich verwende Spring und Hibernate, mit JPG für den Datenbankzugriff. Bei Verwendung von namedQuery
erhalte ich einen "unerwarteten Token" -Fehler, aber wenn ich die Abfrage direkt in entityManager
's create method schreibe, gibt es das korrekte Ergebnis.EntityManager erstellen Abfrage zeigen unerwartetes Token:
Das ist mein pojo und Abfrage für Benutzernamen abzurufen:
@NamedQueries(
@NamedQuery(name="getUserName" , query="select u.name from User u")
})
@Entity
@Table(name ="user")
public class User {
@Id
@Column(name="user_id")
private int id;
@Column(name="user_name")
private String name;
//getter setter
}
und dies ist der Code, wo ich Benutzernamen abrufen möchten.
entityManager.createQuery("getUserName").getResultList();
Es erzeugt diesen Fehler:
org.hibernate.hql.internal.ast.ErrorCounter: line 1:1: unexpected token: getUserName
! antlr.NoViableAltException: unexpected token: getUserName
Wenn ich die gleiche Abfrage innerhalb entityManager.createQuery("write same query here ")
schreiben, es funktioniert. Aber ich möchte Abfrage in benannter Abfrage schreiben und bei Bedarf darauf zugreifen. Ich benutze Frühling und Winterschlaf Integration. Warum zeigt namedquery
ein nicht erwartetes Token bei der Verwendung in createquery
Methode von entityManager
?
Danke tun. Es funktioniert für mich –