gpt4 book ai didi

java - hibernate3中索引越界异常

转载 作者:行者123 更新时间:2023-12-01 12:16:23 25 4
gpt4 key购买 nike

在我的项目中,我以周的方式存储和检索时间表。我有一张这样的 table

Id projectId activityId     Date       Spenttime
1 1 1 2014-11-10 8
2 1 1 2014-11-11 8
3 1 1 2014-11-12 8
4 1 1 2014-11-13 8
5 1 1 2014-11-14 8
6 1 1 2014-11-15 8
7 1 1 2014-11-16 8
8 1 2 2014-11-10 8
9 1 2 2014-11-11 8
10 1 2 2014-11-12 8
11 1 2 2014-11-13 8
12 1 2 2014-11-14 8
13 1 2 2014-11-15 8
14 1 2 2014-11-16 8
15 2 1 2014-11-15 8
16 2 1 2014-11-16 8

我想要上表的结果,如下所示

projectId activityId 2014-11-10  2014-11-11 2014-11-12 2014-11-13 2014-11-14 2014-11-15 2014-11-16 
1 1 8 8 8 8 8 8 8
1 2 8 8 8 8 8 8 8
2 1 0 0 0 0 0 8 8

上表的我的 hibernate 代码

List<Timesheet> timesheetList=sessionfactory.getCurrentSession.createCriteria(Timesheet.class)
.add(Restrctions.between("date",formatter.parse("2014-11-09"),formatter.parse("2014-11-16"))
.list();

检索逻辑:

List<DisplayTable> dispaly=new ArrayList<DisplayTable>();
for(int i=0;i<timesheetList.size();i+=7)
{
DisplayTable disp=new DisplayTable();
disp.setProjectId(timesheetList.get(i).getProjectId());
disp.setActivityId(timesheetList.get(i).getActivityId());
disp.setSpentTimeDate1(timesheetList.get(i).getSpentTime());
disp.setSpentTimeDate2(timesheetList.get(i+1).getSpentTime());
disp.setSpentTimeDate3(timesheetList.get(i+2).getSpentTime());
disp.setSpentTimeDate4(timesheetList.get(i+3).getSpentTime());
disp.setSpentTimeDate5(timesheetList.get(i+4).getSpentTime());
disp.setSpentTimeDate6(timesheetList.get(i+5).getSpentTime());
disp.setSpentTimeDate7(timesheetList.get(i+6).getSpentTime());
}

上面的逻辑在前两次迭代中工作正常。之后它抛出索引越界异常。我知道抛出异常是因为项目 2 仅包含 2 行。

他们有什么方法可以在 hibernate3 中达到预期的结果吗?任何帮助将不胜感激!!!!

最佳答案

将条件更改为

 i < timesheetList.size() - 6

因为你不想比尺寸+7

关于java - hibernate3中索引越界异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26978332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com