我正在使用Hibernate作为ORM映射器。我想执行一个实际上相当简单的HQL查询:
SELECT a
FROM Foo a
WHERE a.status = :A0status
ORDER BY a.bookingTypeCode ASC,
a.priority ASC
这个HQL查询会被转换成一个SQL查询,看起来大概是这样的:
select a.*
from Foo a
where a.status='A'
order by a.bookingtypecode ASC,
a.priority ASC
我在Oracle SQL Developer上执行SQL查询时,返回17行结果。然而,当我使用Query
的list
方法执行hql查询时,得到的是一个由17个null
元素组成的列表。虽然元素数量正确,但实际上没有一个元素被加载。
以下是我创建和执行查询的方式:
// the hql query is stored in the hqlQuery variable;
// the parameter are stored in a Map<String, Object> called params
Query hQuery = hibSession.createQuery(hqlQuery);
for (Entry<String, Object> param : params.entrySet()) {
String key = param.getKey();
Object value = param.getValue();
hQuery.setParameter(key, value);
}
List<?> result = hQuery.list();
有人知道这里可能存在什么问题吗?
更新1
我最近从hibernate 3.2升级到4.3.5。在升级之前一切都运行良好。升级之后我遇到了这个错误。