0

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

休眠状态正在生成功率函数

pow(?, xyzo0_.AmtScale)

而 sybase 支持 power 函数作为语法

POWER(数字表达式 1,数字表达式 2)

我们已经尝试修改 hibernate.dialect。试过

org.hibernate.dialect.SybaseASE15方言 org.hibernate.dialect.Sybase11方言 org.hibernate.dialect.SybaseAnywhere方言

但所有方言都会产生幂函数

pow(?, xyzo0_.AmtScale)。

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

4

1 回答 1

0

修复了这个。我们通过扩展 Sybase Dialect 类添加了自定义实现。

在此类构造函数中,我们调用了 registerFunction 来指定幂函数的替代方法。

public class XyzDialect extends Sybase11Dialect {

//constructor   
XyzDialect() {

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

}

于 2012-11-28T17:20:23.457 回答