hibernate HQL不识别oracle替换功能

时间:2013-02-25 01:09:59

标签: function replace hql

我有一个班级

       class  A  {
            String aField;
            String bField;
     }

       class  B {
             A   classAField
     }

我使用限制来构建HQL

  Restrictions.like(propertyName, obj);

使用oracle sql函数附加的propertyName i来删除所有空格,因此propertyName为

  replace(classAField.aField,' ')

我收到了以下错误

  could not resolve property: replace(classAField of: B; nested exception is org.hibernate.QueryException: could not resolve property: replace(classAField of: B

hiberante无法识别pl / sql函数。    我使用oracle 10g diaglect

<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>

is there a work around here?

非常感谢

2 个答案:

答案 0 :(得分:0)

为此,您可能需要Restrictions.sqlRestriction

让它在你的特定环境中工作可能需要一些工作,但使用它你通常可以解决这样的困难。

将它用于特定实体的特定字段不会强迫您在任何地方使用它。它可以与其他限制混合使用。

答案 1 :(得分:0)

好的,Criterion查询不识别函数,除了使用sqlRestriction