Java Hibernate Criteria Average:BigDecimal而不是Double

时间:2014-03-10 15:56:12

标签: java hibernate

Hibernate标准将 Projections.avg(“列”)映射到 Double

如何强制Hibernate将该功能映射到 BigDecimal

Hibernate hibernate-core-4.1.9.Final.jar

1 个答案:

答案 0 :(得分:2)

应该可以继承AvgProjection覆盖getTypes以返回BigDecimal并改为使用此投影。

public class AvgBDProjection extends AvgProjection{

    public AvgBDProjection(String propertyName) {
        super(propertyName);
    }

    public Type[] getTypes(Criteria criteria, CriteriaQuery criteriaQuery)
    throws HibernateException {
        return new Type[] { org.hibernate.type.BigDecimalType.INSTANCE };
   }
}