2009-10-26 112 views
-1

請轉換爲SQL的HQLHibernate查詢語言

SQL語句:■從useraccout 選username,其中,電子郵件= 「參數值」

更多介紹:

而運行代碼我得到這個錯誤:

public List dispUser(String email){ 
    Query query = em.createQuery("SELECT u.username FROM Useraccout u WHERE u.email=:email)"); 
    query.setParameter(email, email); 
    List search = query.getResultList(); 
    return search; 
} 

運行代碼時我收到以下錯誤

java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: 
Useraccout is not mapped [SELECT u.username FROM Useraccout u WHERE u.email=:email1)] 
     at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:624) 
     at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:96) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
+0

什麼是您的映射文件? – ollifant

+1

-1表示錯誤的主題 - 請在使用之前閱讀Hibernate文檔。一個好的起點是http://hibernate.org/152.html。提示:在使用它們之前,必須將這些類映射到Hibernate配置中。 –

+0

「useraccout」,你確定你不只是犯了一個錯字? – wds

回答

1

您似乎沒有映射了一個名爲Useraccount類。我的猜測是,要麼:

  • 你已經制定了一個名爲Useraccount類,並在該查詢
  • 您還沒有映射的任何類類型不正確的這個類的名稱。這表明你不瞭解Hibernate的基礎知識。簡而言之,映射到數據庫表的每個類都需要使用XML文件或註釋來定義此映射。