Hibernate Named Query is Null - PullRequest
       14

Hibernate Named Query is Null

0 голосов
/ 02 ноября 2011

У меня проблема с именованными запросами гибернации.

Моя сущность:

import org.hibernate.annotations.NamedQueries;
import org.hibernate.annotations.NamedQuery;

import javax.persistence.Entity;

@NamedQueries({ @NamedQuery(name = "getAllPersons", query = "select * from person p") })
@Entity
public class Person extends Party { .... }

Мой DAO:

import org.hibernate.Query;
import org.springframework.stereotype.Repository;

@Repository
public class DefaultPersonDao implements PersonDao{

    @Override
    @SuppressWarnings("unchecked")
    public List<Person> getAllPersons() {
        Query query = getSession().getNamedQuery("getAllPersons");
        List<Person> persons = query.list();
        return persons;
    }
}

Я всегда получаю исключение NullPointerException, когда делаю query.list(), потому что запрос, который я получаю из сессионной фабрики, равен нулю.

(getSession() возвращает import org.hibernate.SessionFactory)

Кто-нибудь видит ошибку?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 02 ноября 2011

Я думаю, что вы используете HQL , если да, то есть ошибка в syntax.use, как показано ниже, query = "select p from Person p".

0 голосов
/ 02 ноября 2011

Проверьте журналы, где-то должна быть зарегистрирована ошибка, потому что запрос недействителен. select * - это запрос SQL, а не JPQL (или HQL). Это должно быть select p from Person p.

...