主要功能:
按照项目ID查找项目功能,并且按照项目进度排序
设计表:
FunctionList 表
说明:项目功能表
字段名 | 数据类型及长度 | 允许为空 | 描述 | 备注 |
FunctionID | Number(20) | 否 | 功能点ID | 主键,自增 |
FunctionDescribe | Varchar2(120) | 功能描述 |
| |
ProjectID | Number(20) | 项目ID | 外键,Project(ProjectID) | |
FUNRESEMPID | Number(20) | 责任人ID | 外键, Employee(EmpID) | |
FUNPLEMPID | Number(20) |
| 负责人所属的PL的id | 外键, Employee(EmpID) |
FunProcess | Varchar2(30) | 功能点进程 | ||
FunBeginTime | Date | 预计启动时间 |
| |
FunActualBegainTime | Date |
| 实际启动时间 |
|
FunEndTime | Date | 预计结束时间 | ||
FunActualEndTime | Date |
| 实际结束时间 |
|
相关代码:
查找满足条件fuctionlist
public List<Functionlist> findByprojectIdByPage(final int offset,
final int length, Long projectid) {
List list = null;
try {
final String hql = "from Functionlist where project.projectid="+ projectid+"order by to_number(funprocess)";
list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
query.setFirstResult(offset);
query.setMaxResults(length);
List list = query.list();
session.close();
return (List<Functionlist>) list;
}
});
} catch (Exception re) {
re.printStackTrace();
return null;
}
return (List<Functionlist>) list;
} return (List<Functionlist>) list;
//调用上述方法,获得fuctionlist列
List<Functionlist> SearchFunctionlistByProjectId = functionListService
.findByprojectIdByPage(pageSize * (currentPage - 1),
pageSize, projectId);
主要问题:当功能名称包含中文时,没有问题,当功能名称是数字时,第一页的最后一条记录,会在以后的分页中重复出现,代替本应显示的一条记录,以上的前置条件都是进度为空,但是当不排序(去掉order by to_number(funprocess))的时候,一切又正常。