次のカスタム方言関数があります。
registerFunction("weight_running_total",
new SQLFunctionTemplate(Hibernate.STRING, "(@runtot := @runtot + weight)"))
// This one takes an argument and saves it off in a variable named @val, that can be retrieved later in the same connection
registerFunction("save_off_last_value",
new SQLFunctionTemplate(Hibernate.STRING, "@val := ?1"))
しかし、単に通過するのではなく、Hibernate はコロンについて不平を言っており、「無効なフィルターパラメーター名の形式」という例外が表示されます。この問題を抱えている他の人を見つけましたが、解決策を見ていないので、ここで助けを求めています...
ところで、これは Hibernate 3 です (現在アップグレードできません)。b/c 私は Grails を使用しています。