2012-04-21 16 views
5

Quale potrebbe essere il problema?"Query denominata sconosciuta" per la query Hibernate denominata?

@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

perché non si utilizza solo name = "User.all"? – Nurlan

+0

Eclipse può solo confermare l'uso delle costanti. Quindi, se creo la query con '" User.all "' è una stringa che non viene controllata. Usando 'User.ALL' viene controllato prima della compilazione se si scrive male. – membersound

+1

Puoi pubblicare il tuo hibernate.cfg.xml/persistence.xml? –

risposta

2

Non sono sicuro se questo sarà il tuo problema, ma controllare questo post here.

Il problema è stato l'uso di:

org.hibernate.annotations.Entity 

Invece di:

javax.persistence.Entity 
+0

Questo è un buon punto da notare, ma ho usato l'importazione corretta in caso mace, purtroppo. – membersound

+0

Ah, vale la pena provare. Hai dichiarato la classe nel tuo hibernate.cfg.xml (le estensioni alla fine possono variare) come ? –

Problemi correlati