可以在Hibernate中的鉴别器公式中使用用户定义的函数

时间:2012-05-01 12:51:28

标签: hibernate user-defined-functions

我在hibernate中创建了一个名为bitwiseAnd的用户定义函数,并在方言构造函数中注册它,如下所示:

public SQLServerDialect() {
    super();
    registerFunction("bitwiseAnd", new SqlBitwiseFunction("bitwiseAnd", StandardBasicTypes.INTEGER));
}

我需要为Oracle做同样的事情,因为它们在按位操作方面有不同的语法。我希望在@DiscriminatorFormula中使用它,但它似乎没有看到注册的函数。这是可能的,还是鉴别器公式只使用本机SQL?

谢谢, R上。

1 个答案:

答案 0 :(得分:3)

DiscriminatorFormula的javadoc链接到Formula的javadoc,其中包含以下内容:

  

公式必须是有效的SQL片段。

所以是的,公式必须是有效的SQL,而不是HQL。