可能是什麼問題?命名Hibernate查詢的「命名查詢未知」?
@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
}
堆棧跟蹤:
如果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
你爲什麼不使用時只需NAME = 「User.all」? – Nurlan 2012-04-21 19:06:31
Eclipse只能確認常量的使用情況。所以,如果我用'「User.all」創建查詢,那麼這是一個不被檢查的字符串。如果我拼寫錯誤,在編譯之前使用'User.ALL'會被檢查。 – membersound 2012-04-21 19:48:40
你可以發佈你的hibernate.cfg.xml/persistence.xml嗎? – 2012-05-25 14:26:34