2009-10-26 113 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文件或注释来定义此映射。