0

Hibernateという名前のクエリに問題があります。

私のエンティティ:

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;
    }
}

query.list()sessionfactoryから取得するクエリがnullであるため、実行すると常にNullPointerExceptionが発生します。

getSession()を返しますimport org.hibernate.SessionFactory

誰かが間違いを見ますか?

ありがとう!

4

2 に答える 2

0

はいの場合はHQLを使用していると思いますが、構文に誤りがあります。以下のように使用してください query = "select p from Person p"

于 2011-11-02T13:24:41.353 に答える
0

ログを確認してください。クエリが無効であるため、どこかにエラーが記録されている必要があります。select *はSQLクエリであり、JPQL(またはHQL)クエリではありません。する必要がありますselect p from Person p

于 2011-11-02T13:22:52.120 に答える