Вопрос

пожалуйста, преобразуйте sql в hql

Оператор SQL :sвыберите имя пользователя из useraccout, где email = "значение параметра"

Более подробное описание:

во время выполнения кода я получаю эту ошибку:

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)
Это было полезно?

Решение

Похоже, вы не сопоставили класс с именем Useraccount.Я предполагаю, что это либо:

  • Вы сопоставили класс с именем Useraccount и неправильно ввели имя этого класса в запросе
  • Вы не сопоставили никаких классов.Это указывает на то, что вы не понимаете основ гибернации.Короче говоря, каждый класс, который сопоставляется с таблицей базы данных, должен определять это сопоставление с помощью либо XML-файла, либо аннотаций.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top