是否有任何正确的方法可以将 CriteriaBuilder 类的算术方法(sum、avg 等)与实体类的 String 属性(VARCHAR 列)一起使用?
这是相关字段:
@Column(name="GRADE")
private String grade;
我想做的是:
Expression ex = criteriaBuilder.avg(root.get("grade");
最佳答案
无法在字符串 (VARCHAR) 数据类型上使用聚合函数。
引用 Oracle http://docs.oracle.com/cd/E12839_01/doc.1111/e12048/funcbltag.htm
Hibernate 中聚合函数的正常用法是使用 hibernate 投影
List results = session.createCriteria(SomeClass.class)
.setProjection( Projections.projectionList()
.add( Projections.avg("someCloumn") )
)
.list();
这也仅适用于数据类型为bitint、float 和 int 的列。
关于java - 使用 JPA 对字符串类型的数据库字段进行算术运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11948809/