我的实体有一个命名查询,如下所示:
@NamedQuery(name = "Person.find", query = "select p from Organization p where p.name=:NAME")
在我的代码中,我想设置查询缓存提示:
query.setHint("eclipselink.cache-usage", "CheckCacheThenDatabase");
如果我尝试获取整个结果列表:
List<Person> result = query.getResultList();
EclipseLink 抛出异常:
Exception [EclipseLink-6124] (Eclipse Persistence Services - 1.0.1 (Build 20080905)): org.eclipse.persistence.exceptions.QueryException
Exception Description: Required query of class org.eclipse.persistence.queries.ReadAllQuery, found class org.eclipse.persistence.queries.ReadObjectQuery
如果我试图只得到一个结果,它会起作用:
Person person = query.getSingleResult();
如果我删除查询提示,那么 getResultList() 也可以工作。
我不明白这个例外 - 不是说它特别期待 getResultList() 吗?我究竟做错了什么?