基準 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));
それはすべて良いです。しかし、私の問題は、db 単体テストなどに HSQLDB を使用しているのに対し、デプロイには Oracle を使用していることです。stddev 関数はオラクルでは完全に機能しますが、HSQLDB にはありません。HSQLDB には stddev_pop と stddev_samp があります。それで、方言に基づいて別の機能を使用できる方法はありますか。
HSQL 方言を拡張して「stddev」を適切な HSQL 関数に登録することはできますが、Criteria API を使用して構築されたクエリで hsql 関数を使用する方法がわかりません。
どんな助けでも大歓迎です。
ありがとう