如何解决使用SearchSQL时如何连接Document和ClassDefinition对象?
我正在将FileNet P8 Content Engine 5.5.x与Java API一起使用Searchsql来构建即席查询。基于Document类创建选择语句很简单:
Searchsql sql = new Searchsql();
String selectList = "d.This,d.Id,d.Name,d.ClassDescription";
sql.setSelectList(selectList);
sql.setFromClauseInitialValue("Document","d",true);
SearchScope scope = new SearchScope(conn.getobjectStore());
RepositoryRowSet rows = scope.fetchRows(sql,8,null,null);
注意:上面的语句使用的是ClassDescription对象,您可以“使用”该对象,但它需要导航该对象以获取SymbolicName。您还必须格外小心,并精心设计属性过滤器,以免造成往返服务器的往返。
Searchsql sql = new Searchsql();
String selectList = "d.This,true);
sql.setFromClauseAdditionalJoin(Joinoperator.INNER,"ClassDeFinition","cd","d.This",JoinComparison.EQUAL,"cd.Id",false);
SearchScope scope = new SearchScope(conn.getobjectStore());
RepositoryRowSet rows = scope.fetchRows(sql,null);
注意:此版本与第一个版本存在相同的问题。
问题是从Document类中用作联接变量(“ d.This”),我尝试过的所有操作都引发了某种类型的sql语法异常。最重要的是,如果我可以访问Oracle数据库,我相信联接很简单。
SELECT dv.object_id,dv.u2e_documenttitle,cd.symbolic_name
FROM DocVersion dv
INNER JOIN ClassDeFinition cd ON
dv.object_class_id = cd.object_id
最终,我想要实现的是在返回的结果集中获得ClassDeFinition类的符号名称。
解决方法
我已经阅读了大多数在线API文档,但仍未找到答案,因此向IBM支持人员开了张罚单。这是通过ad-hock SQL查询API将文档类加入类定义类的正确方法
var sql = new SearchSQL();
sql.setFromClauseInitialValue("Document","d",true);
sql.setFromClauseAdditionalJoin(JoinOperator.INNER,"ClassDefinition","cd","d.ClassDescription",JoinComparison.EQUAL,"cd.This",true);
var scope = new SearchScope(os);
var pf = new PropertyFilter();
pf.addIncludeProperty(new FilterElement(1,null,PropertyNames.THIS,null));
pf.addIncludeProperty(new FilterElement(1,PropertyNames.ID,"DocumentTitle",PropertyNames.MIME_TYPE,PropertyNames.DATE_CREATED,PropertyNames.SYMBOLIC_NAME,Boolean.FALSE,PropertyNames.CLASS_DESCRIPTION,PropertyNames.CLASS_DEFINITION,PropertyNames.PROPERTY_DEFINITIONS,PropertyNames.CONTENT_ELEMENTS_PRESENT,null));
RepositoryRowSet rows = scope.fetchRows(sql,256,pf,null);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。