假设我有存储在Jackrabbit JCR存储库中的节点,它们在其中附加了多个“标记”属性。
我想执行一个or查询,其中任何节点都会返回带有查询中任何标记的标记。但我要按匹配的数量来订购。因此,一个具有全部或条件匹配的节点将位于顶部,一个仅匹配一个的节点将位于最后。
我想这和这里的建议一样:https://stackoverflow.com/a/3289152/303106
但是AFAIK,我们在SQL2中没有CASE构造。我也不知道XPATH中有什么等价的东西。
那么,我该如何实现相同的结果(除了应用程序级别的后处理,由于性能问题,我更希望避免这种情况)。
我希望这将帮助您执行查询:
public FolderListReturn listFolder(String parentNode, String userid, String password) {
System.out.println("getting folders and files from = "+parentNode+" of user : "+userid);
SessionWrapper sessions = JcrRepositoryUtils.login(userid, password);
Session jcrsession = sessions.getSession();
Assert.notNull(name);
FolderListReturn folderList1 = new FolderListReturn();
ArrayOfFolders folders = new ArrayOfFolders();
try {
javax.jcr.query.QueryManager queryManager;
queryManager = jcrsession.getWorkspace().getQueryManager();
**String expression = "select * from [nt:folder] AS s WHERE ISCHILDNODE(s,'"+name+"')and CONTAINS(s.[edms:owner],'*"+userid+"*') ORDER BY s.["+Config.EDMS_Sorting_Parameter+"] ASC";**
javax.jcr.query.Query query = queryManager.createQuery(expression, javax.jcr.query.Query.JCR_SQL2);
javax.jcr.query.QueryResult result = query.execute();
for (NodeIterator nit = result.getNodes(); nit.hasNext();) {
Node node = nit.nextNode();
Folder folder = new Folder();
folder=setProperties(node,folder,userid,password,jcrsession,name);
folders.getFolderList().add(folder);
}
folderList1.setFolderListResult(folders);
folderList1.setSuccess(true);
} catch (Exception e) {
e.printStackTrace();
} finally{
//JcrRepositoryUtils.logout(sessionId);
}
return folderList1;
}
问题内容: 我正在尝试做一个标准查询,该查询返回像常见问题一样的stackoverflow中回答最多的问题。 一个问题包含多个答案。 我试图以标准查询返回按每个问题的答案数排序的最常回答的问题。 有人知道我应该在hibernate标准util中使用什么吗? 问题答案: 这将返回一个Object []列表。每个Object []都将问题的ID作为第一个元素,并将此问题的答案数目作为第二个元素。问题按
问题内容: 我有一个带有“标题”字段的表,该字段是varchar2,我想选择所有行,然后按通常的顺序先按数字然后按字母对它们进行排序。 例如,我目前最后使用一个简单的代码: 美国广播公司 国防部 321 但是我想要这个: 321 美国广播公司 国防部 奇怪的是,SQL Developer显示“正确”的顺序,以数字开头。但是在我的应用程序(使用OCI8的PHP)上,它最后显示数字。 问题答案: 不是
这似乎是一个相当简单的问题,但我已经为此绞尽脑汁好几个小时了。我有一个类似于下面的节点结构: 我需要从子节点收集三种类型的属性:一种是字符串、布尔值和字符串数组。我认为下面的sql2查询可以工作并获得它们的属性,但无论出于什么原因,我都会得到一个错误: 查询 错误: 感谢您的帮助,因为我已经在这几天了。
尝试使用FTL模板进行转换时出现异常!freemarker.core.nonNumericalException:对于“-”左手操作数:需要一个数字,但它的计算结果是序列+散列(包装器:f.e.dom.nodelistmodel):==>item.target[在模板“marketing/widgets/freemarker/newblogpost-update.ftl”中,第31行,第105列]
问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 6年前关闭。 我的mySQL数据库中有如下表: 对于谓词,它将具有如下树视图: 我想创建一个可以选择起始节点并为此获得所有父节点的表单。例如,通过选择我想要获得: 步骤2: 有什么方法可以使用以下简单文本来打印此节点: 问题答案: 您的数据可以在RDF中表
问题内容: 有什么方法可以对Node对象中的元素进行重新排序,以使其与顺序匹配?我已阅读的文档,但似乎没有执行该功能。还有什么可以做的吗? 我相信可以使用XSLT做到这一点,但这听起来像是使用XSLT的解决方案太复杂了,而且它是一个特殊的解析器来执行操作,而不是拥有Java原生的东西。 还是我实际上需要编写一个复杂的函数来为我做处理? 问题答案: 如果我正确地理解了您的问题,那么您想要的是一种“神