尽管执行的SQL返回值,但Hibernate返回空值列表

mvi*_*fer 8 java sql oracle hibernate

我正在使用hibernate作为ORMapper.我想执行一个实际上相当简单的hql查询:

SELECT a 
FROM Foo a 
WHERE a.status = :A0status 
ORDER BY a.bookingTypeCode ASC, 
         a.priority ASC
Run Code Online (Sandbox Code Playgroud)

然后将此hql查询转换为sql查询,如下所示:

select a.* 
from Foo a 
where a.status='A' 
order by a.bookingtypecode ASC, 
         a.priority ASC
Run Code Online (Sandbox Code Playgroud)

当我使用Oracle SQL Developer在oracle数据库上执行sql时,我返回了17行.但是,当我执行hql查询时(使用list方法,Query我得到了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();
Run Code Online (Sandbox Code Playgroud)

执行query.list()后得到的结果;

有谁知道这可能是什么问题?

更新1

我最近从hibernate 3.2升级到4.3.5.升级之前一切正常.升级后我收到此错误.

mvi*_*fer 12

我已将休眠的日志级别设置为TRACE并发现了问题.它实际上是映射/逻辑/数据库错误.主键由两列组成(根据实体类),其中一列可以为空.但是,主键永远不能为空.因此,hibernate总是返回null.