" ORA-00979:不是分组表达"使用Hibernate HQL

时间:2013-11-26 16:10:41

标签: oracle hibernate hql

我正在Oracle数据库中执行以下 HQL查询

select p, count(e) 
from Entity p 
join p.elementsA l 
join l.elementsB e 
group by p 
order by p.name

这在MySQL数据库中运行良好但是当我将Dialect更改为Oracle10g时,似乎没有使用p中的所有字段来创建group by子句(根据Oracle的要求),从而产生“ORA-00979:不是一个组通过表达“。我知道通过更改Dialect Hibernate应该将此HQL转换为ORacle的有效SQL语句。

我错了吗?我使用的是Oracle10g方言。

编辑:现在我发现它不会将其他查询转换为Oracle方言。像这样:

select
        e 
    from
        Entity e 
    where
        e.idEntity in (
            :idList
        ) 
    order by
        field(e.idEntity ,
        :idList)

现在我理解Oracle不支持逐字段句子,但是HQL不应该正确地将它翻译成Oracle语法(即order by decode(e.idEntity, ...))?

0 个答案:

没有答案