2012-04-21 15 views
5

Was könnte das Problem sein?"Benannte Abfrage nicht bekannt" für benannte Hibernate-Abfrage?

@Entity 
@NamedQueries({ 
    @NamedQuery(name = User.ALL, 
       query = "SELECT u FROM User u") 
}) 

public class User { 
    public static final String ALL = "User.all"; 
} 

public class Service { 
    find... with ... User.ALL 
} 

Stacktrace:

Caused by: org.hibernate.MappingException: Named query not known: User.all 
    at org.hibernate.impl.AbstractSessionImpl.getNamedQuery(AbstractSessionImpl.java:93) 
    at org.hibernate.impl.SessionImpl.getNamedQuery(SessionImpl.java:1407) 
    at $Session_a5ad46cfa25.getNamedQuery(Unknown Source) 
    at $Session_a5ad46cf913.getNamedQuery(Unknown Source) 
    at de.medicshare.dal.HibernateCrudServiceDAO.findUniqueWithNamedQuery(HibernateCrudServiceDAO.java:83) 
    at $CrudServiceDAO_a5ad46cfa19.findUniqueWithNamedQuery(Unknown Source) 
    at $CrudServiceDAO_a5ad46cfa1b.findUniqueWithNamedQuery(Unknown Source) 
    at $CrudServiceDAO_a5ad46cf931.findUniqueWithNamedQuery(Unknown Source) 
    at de.medicshare.pages.Signup.proceedSignup(Signup.java:82) 
    at de.medicshare.pages.Signup.dispatchComponentEvent(Signup.java) 
    at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:923) 
    at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1106) 
    ... 90 more 
+0

, warum Sie nicht einfach Name = "User.all"? – Nurlan

+0

Eclipse kann nur die Verwendung von Konstanten bestätigen. Also, wenn ich die Abfrage mit "User.all" erstellen, ist es eine Zeichenfolge, die nicht überprüft wird. Die Verwendung von 'User.ALL' wird vor dem Kompilieren überprüft, wenn ich es falsch buchstabiere. – membersound

+1

Können Sie Ihre hibernate.cfg.xml/persistence.xml posten? –

Antwort

2

Nicht sicher, ob dies das Problem sein, aber here diesen Beitrag sehen.

Das Problem war die Verwendung von:

org.hibernate.annotations.Entity 

Statt:

javax.persistence.Entity 
+0

Das ist ein guter Punkt zu beachten, aber ich habe leider den richtigen Import in Keule Fall. – membersound

+0

Ahh ist einen Versuch wert. Haben Sie die Klasse in Ihrer hibernate.cfg.xml (Erweiterungen am Ende können variieren) als deklariert? –

Verwandte Themen