- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Windchill高级查询感悟笔记
Windchill高级查询感悟笔记
首先从这个例子来开始我们的“高级查询”之旅
{
QuerySpec queryspec = new QuerySpec();
queryspec.appendClassList(WTPart.class, true);
queryspec.appendClassList(WTDocument.class, true);
PersistenceManagerSvr pms = (PersistenceManagerSvr) InvocationHandlerFwd.getInterfaceObject(PersistenceManagerSvr.class);
QueryResult qr = pms.query(queryspec);
}
QuerySpec对象是用来指定查询表达式的,
queryspec.appendClassList()是用来指定From子句的,如果有多个这样的表达式而没有其他条件,那么就是对相应的被查询对象“求笛卡儿积”;
例如上面的例子就会形成下面的Form子句:
From WTPART,WTDOCUMENT
指定From子句有两种方式:
queryspec.appendClassList(WTPart.class, false); //指定具体的对象
qs.appendFrom(new ExternalTableExpression(GZMTRECR)); //指定具体的表
在appendClassList()中有两个参数,第一个参数是用来指定被查询对象,第二个参数用来指定查询的返回形式:true以对象的形式返回,false以属性的方式返回;
如果是用appendClassList()来指定查询对象,那么查询结果QueryResult qr对象qr.nextElement()得到的是Object数组,具体的结果保存在这个数组中;
为Select子句中指定返回字段
不管queryspec.appendClassList()方法的第二个参数是true还是false,结果都会返回整个对象或者所有的字段;
要想过滤返回的字段,需要增加下面的代码
{
QuerySpec queryspec = new QuerySpec();
int a = queryspec.appendClassList(WTPart.class, false);
int b = queryspec.appendClassList(WTDocument.class, true);
//--------------------------------------------------------------------
ClassAttribute ca = new ClassAttribute(WTPart.class, masternumber); //μú?t??2?êy±?D?ê±?àó|òμ?????óμ?ê?D?
queryspec.appendSelect(ca, false);
//--------------------------------------------------------------------
CompositeWhereExpression andExpression = new CompositeWhereExpression(LogicalOperator.AND);
andExpression.append(new SearchCondition(ca, =, new ConstantExpression(TEST_PRODUCT_ONE)), null);
queryspec.appendWhere(andExpression);
//--------------------------------------------------------------------
} SELECT A1.NUMBER FROM WTPART A0, WTPARTMASTER A1 WHERE A0.IDA3MASTERREFERENCE = A1.IDA2A2;
通过TableColumn指定查询条件
{
QuerySpec queryspec = new QuerySpec();
int classIndex = queryspec.appendClassList(WTPart.class, false);
ClassAttribute clas
文档评论(0)