我在hibernate中创建了一个名为bitwiseAnd的用户定义函数,并在方言构造函数中注册它,如下所示:
public SQLServerDialect() {
super();
registerFunction("bitwiseAnd", new SqlBitwiseFunction("bitwiseAnd", StandardBasicTypes.INTEGER));
}
我需要为Oracle做同样的事情,因为它们在按位操作方面有不同的语法。我希望在@DiscriminatorFormula中使用它,但它似乎没有看到注册的函数。这是可能的,还是鉴别器公式只使用本机SQL?
谢谢, R上。
答案 0 :(得分:3)
DiscriminatorFormula的javadoc链接到Formula的javadoc,其中包含以下内容:
公式必须是有效的SQL片段。
所以是的,公式必须是有效的SQL,而不是HQL。