@SuppressWarnings("unchecked")
@Override
public List<OaCoopApprove> findDoneList(String userName) {
Criteria criteria = this.getSession().createCriteria(OaCoopApprove.class, "a");
criteria.createAlias("oaWorkflowNode", "b", Criteria.INNER_JOIN);
criteria.add(Restrictions.ne("b.type", ScpConstants.NUMBER_3));
criteria.add(Restrictions.eq("a.userName", userName));
criteria.add(Restrictions.sqlRestriction(
"{alias}.workDate = (SELECT MAX(c.workDate) FROM OA_COOP_APPROVE c WHERE c.oaCoop_id = a.oaCoop_id AND c.userName = ?)",
new Object[] { userName },
new Type[]{new StringType()}
));
criteria.setFirstResult(0);
criteria.setMaxResults(4);
List<OaCoopApprove> list = criteria.list();
if (list != null && list.size() > 0) {
return list;
}
return new ArrayList<OaCoopApprove>();
}
Hibernate: select top 4 this_.id as id345_7_, this_.dataTablePath as dataTabl2_345_7_, this_.flag as flag345_7_, this_.oaCoop_id as oaCoop10_345_7_, this_.oaWorkflowNode_id as oaWorkf11_345_7_, this_.sight as sight345_7_, this_.userInfo as userInfo345_7_, this_.userName as userName345_7_, this_.workContent as workCont7_345_7_, this_.workDate as workDate345_7_, this_.workflowNodeName as workflow9_345_7_, oacoop3_.id as id344_0_, oacoop3_.attentionCode as attentio2_344_0_, oacoop3_.attentionMessage as attentio3_344_0_, oacoop3_.contentId as contentId344_0_, oacoop3_.oaDataTable_code as oaDataT14_344_0_, oacoop3_.oaDataTableType_typeCode as oaDataT15_344_0_, oacoop3_.oaWorkflowControl_id as oaWorkf16_344_0_, oacoop3_.startCompanyId as startCom5_344_0_, oacoop3_.startCompanyName as startCom6_344_0_, oacoop3_.startDate as startDate344_0_, oacoop3_.startWriter as startWri8_344_0_, oacoop3_.startWriterDepId as startWri9_344_0_, oacoop3_.startWriterDepName as startWr10_344_0_, oacoop3_.startWriterName as startWr11_344_0_, oacoop3_.status as status344_0_, oacoop3_.title as title344_0_, oadatatabl4_.code as code348_1_, oadatatabl4_.attribute as attribute348_1_, oadatatabl4_.classPath as classPath348_1_, oadatatabl4_.dataformtype as dataform4_348_1_, oadatatabl4_.eventClassPath as eventCla5_348_1_, oadatatabl4_.name as name348_1_, oadatatabl4_.oaDataTableType_typeCode as oaDataT10_348_1_, oadatatabl4_.pathName as pathName348_1_, oadatatabl4_.state as state348_1_, oadatatabl4_.usetype as usetype348_1_, oadatatabl5_.typeCode as typeCode349_2_, oadatatabl5_.state as state349_2_, oadatatabl5_.typeName as typeName349_2_, oadatatabl5_.usetype as usetype349_2_, oadatatabl6_.typeCode as typeCode349_3_, oadatatabl6_.state as state349_3_, oadatatabl6_.typeName as typeName349_3_, oadatatabl6_.usetype as usetype349_3_, oaworkflow7_.id as id357_4_, oaworkflow7_.account as account357_4_, oaworkflow7_.appusers as appusers357_4_, oaworkflow7_.belongCompany_id as belongC16_357_4_, oaworkflow7_.designBandFormId as designBa4_357_4_, oaworkflow7_.designBandFormTypeId as designBa5_357_4_, oaworkflow7_.designContent as designCo6_357_4_, oaworkflow7_.designFlowManageRole as designFl7_357_4_, oaworkflow7_.designGlobaVar as designGl8_357_4_, oaworkflow7_.designId as designId357_4_, oaworkflow7_.flowtype as flowtype357_4_, oaworkflow7_.illuminate as illuminate357_4_, oaworkflow7_.lastUpdate as lastUpdate357_4_, oaworkflow7_.name as name357_4_, oaworkflow7_.range as range357_4_, oaworkflow7_.status as status357_4_, b1_.id as id360_5_, b1_.agreePercent as agreePer2_360_5_, b1_.designId as designId360_5_, b1_.designate as designate360_5_, b1_.flowType as flowType360_5_, b1_.name as name360_5_, b1_.note as note360_5_, b1_.oaWorkflowControl_id as oaWorkf14_360_5_, b1_.position as position360_5_, b1_.signIsPublic as signIsPu9_360_5_, b1_.type as type360_5_, b1_.workManner as workManner360_5_, b1_.workSequence as workSeq12_360_5_, b1_.worker as worker360_5_, oaworkflow9_.id as id357_6_, oaworkflow9_.account as account357_6_, oaworkflow9_.appusers as appusers357_6_, oaworkflow9_.belongCompany_id as belongC16_357_6_, oaworkflow9_.designBandFormId as designBa4_357_6_, oaworkflow9_.designBandFormTypeId as designBa5_357_6_, oaworkflow9_.designContent as designCo6_357_6_, oaworkflow9_.designFlowManageRole as designFl7_357_6_, oaworkflow9_.designGlobaVar as designGl8_357_6_, oaworkflow9_.designId as designId357_6_, oaworkflow9_.flowtype as flowtype357_6_, oaworkflow9_.illuminate as illuminate357_6_, oaworkflow9_.lastUpdate as lastUpdate357_6_, oaworkflow9_.name as name357_6_, oaworkflow9_.range as range357_6_, oaworkflow9_.status as status357_6_ from OA_COOP_APPROVE this_ left outer join OA_COOP oacoop3_ on this_.oaCoop_id=oacoop3_.id left outer join OA_DATA_TABLE oadatatabl4_ on oacoop3_.oaDataTable_code=oadatatabl4_.code left outer join OA_DATA_TABLE_TYPE oadatatabl5_ on oadatatabl4_.oaDataTableType_typeCode=oadatatabl5_.typeCode left outer join OA_DATA_TABLE_TYPE oadatatabl6_ on oacoop3_.oaDataTableType_typeCode=oadatatabl6_.typeCode left outer join OA_WORKFLOW_CONTROL oaworkflow7_ on oacoop3_.oaWorkflowControl_id=oaworkflow7_.id inner join OA_WORKFLOW_NODE b1_ on this_.oaWorkflowNode_id=b1_.id left outer join OA_WORKFLOW_CONTROL oaworkflow9_ on b1_.oaWorkflowControl_id=oaworkflow9_.id where b1_.type<>? and this_.userName=? and this_.workDate = (SELECT MAX(c.workDate) FROM OA_COOP_APPROVE c WHERE c.oaCoop_id = a.oaCoop_id AND c.userName = ?)
2025-07-23 15:38:39,709 - org.hibernate.util.JDBCExceptionReporter -70462 [http-bio-8080-exec-7] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 4104, SQLState: S1000
2025-07-23 15:38:39,710 - org.hibernate.util.JDBCExceptionReporter -70463 [http-bio-8080-exec-7] ERROR org.hibernate.util.JDBCExceptionReporter - 无法绑定由多个部分组成的标识符 "a.oaCoop_id"。
2025-07-23 15:38:39,719 - 500.jsp -70472 [http-bio-8080-exec-7] ERROR 500.jsp - could not execute query
org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140)
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
org.hibernate.loader.Loader.doList(Loader.java:2545)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
org.hibernate.loader.Loader.list(Loader.java:2271)
org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:119)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1716)
org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:347)
com.bksuns.workflow.dao.impl.WorkflowOperateDAOImpl.findDoneList(WorkflowOperateDAOImpl.java:1201)
com.bksuns.workflow.service.impl.WorkflowOperateServiceImpl.findDoneList(WorkflowOperateServiceImpl.java:2661)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)