资源描述:
《Windchill高级查询感悟笔记》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Windchill高级查询感悟笔记首先从这个例子来开始我们的“高级查询”之旅{QuerySpecqueryspec=newQuerySpec();queryspec.appendClassList(WTPart.class,true);queryspec.appendClassList(WTDocument.class,true);PersistenceManagerSvrpms=(PersistenceManagerSvr)InvocationHandlerFwd.getInterfaceObject(PersistenceManagerSvr.class);QueryResult
2、qr=pms.query(queryspec);}QuerySpec对象是用来指定查询表达式的,queryspec.appendClassList()是用来指定From子句的,如果有多个这样的表达式而没有其他条件,那么就是对相应的被查询对象“求笛卡儿积”;例如上面的例子就会形成下面的Form子句:FromWTPART,WTDOCUMENT指定From子句有两种方式:queryspec.appendClassList(WTPart.class,false);//指定具体的对象qs.appendFrom(newExternalTableExpression("GZMTRECR"));//
3、指定具体的表在appendClassList()中有两个参数,第一个参数是用来指定被查询对象,第二个参数用来指定查询的返回形式:true以对象的形式返回,false以属性的方式返回;如果是用appendClassList()来指定查询对象,那么查询结果QueryResultqr对象qr.nextElement()得到的是Object数组,具体的结果保存在这个数组中;为Select子句中指定返回字段不管queryspec.appendClassList()方法的第二个参数是true还是false,结果都会返回整个对象或者所有的字段;要想过滤返回的字段,需要增加下面的代码{QuerySp
4、ecqueryspec=newQuerySpec();inta=queryspec.appendClassList(WTPart.class,false);intb=queryspec.appendClassList(WTDocument.class,true);//--------------------------------------------------------------------ClassAttributeca=newClassAttribute(WTPart.class,"master>number");//µÚ¶þ¸ö²ÎÊý±ØÐëʱÏàÓ¦ÒµÎñ¶Ô
5、ÏóµÄÊôÐÔqueryspec.appendSelect(ca,false);//--------------------------------------------------------------------CompositeWhereExpressionandExpression=newCompositeWhereExpression(LogicalOperator.AND);andExpression.append(newSearchCondition(ca,"=",newConstantExpression("TEST_PRODUCT_ONE")),null);q
6、ueryspec.appendWhere(andExpression);//--------------------------------------------------------------------}SELECTA1.NUMBERFROMWTPARTA0,WTPARTMASTERA1WHEREA0.IDA3MASTERREFERENCE=A1.IDA2A2;通过TableColumn指定查询条件{QuerySpecqueryspec=newQuerySpec();intclassIndex=queryspec.appendClassList(WTPart.class,f
7、alse);ClassAttributeclassAttr=newClassAttribute(WTPart.class,"partType");queryspec.appendSelect(classAttr,newint[]{classIndex},false);TableColumntc=newTableColumn(null,"IDA2A2");queryspec.appendWhere(newSearchCondition(tc,"=",newC