【问题标题】:hibernate query language休眠查询语言
【发布时间】:2009-10-26 10:42:07
【问题描述】:

请转换hql中的sql

SQL 语句:s从 useraccout where email = "parameter value" 中选择用户名

更多说明:

运行代码时出现此错误:

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)

【问题讨论】:

  • -1 用于错误的主题 - 请在使用之前阅读 Hibernate 文档。一个好的起点是 hibernate.org/152.html 。提示:在使用它们之前,您必须在 Hibernate 配置中映射类。
  • "useraccout",你确定你没有打错字?

标签: hibernate hql


【解决方案1】:

您似乎没有映射名为Useraccount 的类。我的猜测是:

  • 您映射了一个名为 Useraccount 的类,并在查询中错误地键入了该类的名称
  • 您尚未映射任何类。这表明你不了解 Hibernate 的基础知识。简而言之,每个映射到数据库表的类都需要使用 XML 文件或注释来定义这种映射。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 2023-03-10
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 2016-05-17
    相关资源
    最近更新 更多