hibernate sybase db power函数

时间:2012-11-27 11:02:56

标签: hibernate sybase

我们正在尝试使用sybase函数“power”来对其中一个DB列进行数学计算。

hibernate正在生成电源功能

  

pow(?,xyzo0_.AmtScale)

而sybase支持幂函数作为语法

  

POWER(numeric-expression-1,numeric-expression-2)

我们尝试修改hibernate.dialect。试过了

  

org.hibernate.dialect.SybaseASE15Dialect   org.hibernate.dialect.Sybase11Dialect   org.hibernate.dialect.SybaseAnywhereDialect

但是所有方言都会生成幂函数

  

pow(?,xyzo0_.AmtScale)。

这是休眠问题还是我们遗漏了什么?

1 个答案:

答案 0 :(得分:0)

修正了此问题。我们通过扩展Sybase Dialect类添加了自定义实现。

在这个类构造函数中,我们调用registerFunction来指定power函数的替代。

  

公共类XyzDialect扩展了Sybase11Dialect {

//constructor   
XyzDialect() {

  registerFunction("pow", 
    new StandardSQLFunction("power",  FloatType.INSTANCE));
}
     

}