基準APIを使用してImを構築するクエリで標準偏差プロジェクションを使用したいと考えています。私は単にこのHibernateの基準で異なる射影関数を使用するDialectに基づくAPI
public class StdDevProjection extends AggregateProjection {
public StdDevProjection(String propertyName) {
super("stddev", propertyName);
}
public Type[] getTypes(Criteria criteria, CriteriaQuery criteriaQuery)
throws HibernateException {
return new Type[] { Hibernate.DOUBLE };
}
}
ような何かを行うことができますし、私は私のような基準でそれを使用することができます良い
myCriteriea.setProjection(new StdDevProjection(myproperty));
ザッツすべて。しかし、私の問題は、私がデプロイするためにOracleを使用するのに対し、私はすべてのdbユニットテストなどでHSQLDBを使用することです。 stddev関数はOracleでは完全に機能しますが、HSQLDBには存在しません。 HSQLDBにはstddev_popとstddev_sampがあります。ですから、私は方言に基づいて別の関数を使用することができます。
"stddev"を適切なHSQL関数に登録するためにHSQL方言を拡張できますが、Criteria APIを使用して構築されたクエリでhsql関数を使用する方法がわかりません。
どのようなヘルプもgretです。 (私は展開の対テストのために別のデータベースエンジンを使用すると、少しあやふやなようだと言っているんだが)方言を使う
おかげで