0

Entity クラスの String プロパティ (VARCHAR 列) で CriteriaBuilder クラスの算術メソッド (sum、avg など) を使用する適切な方法はありますか?

関連するフィールドは次のとおりです。

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

そして、私がやりたいことは次のとおりです。

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

1 に答える 1

1

文字列 (VARCHAR) データ型で集計関数を使用することはできません。

Oracle http://docs.oracle.com/cd/E12839_01/doc.1111/e12048/funcbltag.htmの参照で

Hibernate での集計関数の通常の使用法は、hibernate を使用することですprojections

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

これは、bitint、float、および intのみのデータ型を持つ列ウィッチの場合にも当てはまります。

于 2012-08-14T08:54:02.820 に答える