2
我需要Hibernate投影的一些幫助。休眠在枚舉上的Projections.sum()
我有一個叫做Activity的類,它有一個屬性「duration」,它是一個Enum。持續時間是Oracle數據庫上的整數字段。我註釋了枚舉。
@TypeDefs({
@TypeDef(
name = "Duration",
typeClass = GenericEnumUserType.class,
parameters = {
@Parameter(name = "enumClass", value = "myproject.Duration"),
@Parameter(name = "identifierMethod", value = "getValue"),
@Parameter(name = "valueOfMethod", value = "getInstanceByValue") })
})
@Entity
@Table(name = "activity")
public class Activity {
...
private Duration duration;
...
}
枚舉持續時間有方法getValue()和getInstanceByValue()。值是一個整數。
我需要總結一些Acitivities,這符合我的標準dutation。我的DetachedCriteria看起來是這樣的:
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Activity.class);
...
detachedCriteria.setProjection(Projections.sum("duration"));
當我執行將這個DetachedCriteria我得到以下ClassCastException異常:
myproject.Duration cannot be cast to java.lang.Integer
我如何可以總結在一個枚舉領域?它使用純SQL工作在數據庫上,因此它應該與我假設的hibernate一起工作。
感謝您的任何幫助。