0

sybase 関数 "power" を使用して、DB 列の 1 つに対して数学的計算を実行しようとしています。

休止状態は次のように電力関数を生成しています

pow(?, xyzo0_.AmtScale)

一方、sybase はべき乗関数を Syntax としてサポートしています。

POWER( 数式1, 数式2 )

hibernate.dialect を変更してみました。試しました

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

しかし、すべての方言はべき乗関数を次のように生成します。

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 に答える