org.hibernate.exception.SQLGrammarException: не удалось выполнить запрос? - PullRequest
6 голосов
/ 01 августа 2011

Я получил это исключение, когда я пытаюсь получить список с помощью NamedQuery:

org.hibernate.exception.SQLGrammarException: could not execute query

Ниже я упомянул код:

Код класса объекта:

@Table(name = "tbl_users")
@XmlRootElement
@NamedQueries({@NamedQuery(name = "TblUsers.findAll", query = "SELECT t FROM TblUsers t")});

Внедрение DAO Код:

org.hibernate.Query query = session.getNamedQuery("TblUsers.findAll");
List list = query.list();

Пожалуйста, предоставьте решение для этого исключения.

Ответы [ 4 ]

8 голосов
/ 20 февраля 2013

Некоторое время сталкивался с той же проблемой и выяснил, что проблема в том, что имя таблицы отличается от имени класса (или объекта) в базе данных.Добавлена ​​аннотация @Table (name = actual_table_name), и она сработала.

5 голосов
/ 01 августа 2011

Получите SQL-запрос, который генерирует Hibernate (используя hibernate.show_sql или, предпочтительно, SQL-логирование Hibernate ), и выполните его для базы данных самостоятельно.Это, скорее всего, поможет направить вас в правильном направлении.

0 голосов
/ 10 августа 2018

Попробуйте, это может сработать. Это прекрасно сработало для меня.

1) Аннотация уровня класса.

@NamedQuery(name="UserDetails.byId" , query="from UserDetails where userId = ?")

2) Получить запись с помощью NamedQuery

Query qry2 = sf.getCurrentSession().getNamedQuery("USER_DETAILS.byName")    ;
        qry2.setString(0, "Angad Bansode");
        List<UserDetails> user = qry2.list();
        for (UserDetails userDetails : user) {
            System.out.println("User Details by named native query  name = " + userDetails.getUserName() + ", aadhaar no  = " + userDetails.getAadharNo());
        }
0 голосов
/ 09 августа 2018

кажется, что этот вопрос немного стар, но в любом случае, как только я добавил строку ниже в конфигурационные файлы hibernate, это сработало для меня.

<property name="show_sql">true</property>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...