我有一个表格文件,我使用字段创建了一个hibernate实体:
archiveDate:日期,
createDate:日期,
copyDdate:日期,
modifiedDate:日期,
fileSourceId:长,
fileSize:长
我必须创建一个DAO来检索统计数据,例如在给定的时间间隔内(每天,每周,每月,每年)为指定的fileSourceId存档的文件数量。就像dao接收这样的参数一样:
fileSourceId = 1,startDay ='2012/01/01',endDate ='2012/02/01',interval ='weekly'
它应该返回一些像这样的对象:
{fileSourceId = 1,endDate =(第一周的结束日期),fileCount = 100,sizeSum = 10000} {fileSourceId = 1,endDate =(第二周的结束日期),fileCount = 120,sizeSum = 30000}
等等。我想避免在java端进行计数和求和等计算,因为有几十万个文件。
是否可以在Hibernate中创建一个或多个条件来执行此操作,或者最好在数据库(Oracle)中执行某些视图并查询此视图。我想避免在查询中使用任何oracle特定函数,因为我们不希望绑定到一个数据库(特别是我们在集成testss中使用h2作为我们的测试数据库)。你会如何解决这个问题?