0

我有一堂课

       class  A  {
            String aField;
            String bField;
     }

       class  B {
             A   classAField
     }

我使用限制来构建 HQL

  Restrictions.like(propertyName, obj);

我用 oracle sql 函数括起来的 propertyName 以删除所有空格,所以 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 方言

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

is there a work around here?

非常感谢

4

2 回答 2

0

为此,您可能想要Restrictions.sqlRestriction.

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

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

于 2013-02-25T01:39:04.130 回答
0

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

于 2013-03-13T04:43:45.573 回答