2012-08-14 56 views
0

是否有任何正确的方式使用CriteriaBuilder类的算术方法(和值,平均值等)与实体类的字符串属性(VARCHAR列)?使用类型字符串的DB字段上的JPA进行算术运算

下面是相关领域:

@Column(name="GRADE") 
private String grade; 

而我想要做的是:

Expression ex = criteriaBuilder.avg(root.get("grade"); 

回答

1

这是不可能使用的字符串(VARCHAR)数据类型聚合函数

在Oracle http://docs.oracle.com/cd/E12839_01/doc.1111/e12048/funcbltag.htm

的reffrence

聚合函数的普通Usesage在Hibernate是通过使用休眠projections

List results = session.createCriteria(SomeClass.class) 
    .setProjection(Projections.projectionList()   
     .add(Projections.avg("someCloumn"))  
    ) 
    .list(); 

这也是仅用于柱女巫具有数据类型bitint, float和int而已。