Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
{rate}This is a collection of mini-recipes for doing JCR queries. Please add your own\!

|| || SQL || XPath (deprecated in JCR 2.0) || SQL2 ||
|| All pages | select * from mgnl:content | //element(*, mgnl:content) | select * from \[mgnl:page\] ||
|| Pages with "News" in the title | select * from mgnl:content where title like '%News%' | //element(*, mgnl:content)\[jcr:like(@title, '%News%')\] | select * from \[mgnl:page\] where title like '%News%' ||
|| Pages where the title exactly matches "News" (case sensitive) | select * from mgnl:content where title like 'News' | //element(*, mgnl:content)\[@title = 'News'\] | select * from \[mgnl:page\] where title like 'News' ||
|| STK pages that have a header image | select * from mgnl:content where image is not null | //element(*, mgnl:content)\[@image\] | select * from \[mgnl:page\] where image is not null ||
|| Instances of a "Teaser" paragraph | select * from nt:base where mgnl:template = 'stkTeaser' | //*\[@mgnl:template = 'stkTeaser'\] | select * from \[nt:base\] where \[mgnl:template\] = 'standard-templating-kit:components/teasers/stkTeaser' ||
|| Available paragraph types | select * from nt:base where jcr:path like '/modules/%/paragraphs/%' and type is not null | /jcr:root/modules\[1\]//*/paragraphs\[1\]//*\[@type\] |  ||
|| User with email 'eric@example.com' | select * from mgnl:user where email = 'eric@example.com' | //element(*, mgnl:user)\[@email = 'eric@example.com'\] | select * from \[mgnl:user\] where email = 'eric@example.com' ||
|| Pages that have the word "component" | SELECT * from nt:base WHERE jcr:path like '/ftl-sample-site%' AND contains(*, 'component') AND (jcr:primaryType = 'mgnl:page' OR jcr:primaryType = 'mgnl:area' OR jcr:primaryType = 'mgnl:component') order by jcr:path | | SELECT * from \[nt:base\] AS t WHERE ISDESCENDANTNODE(\[/ftl-sample-site]) AND contains(t.*, 'component') ||
|| Template folders in module configuration | select * from mgnl:content where jcr:path like '/modules/%/templates' | | select * from \[mgnl:content\] as t where ISDESCENDANTNODE(\[/modules]) and name(t) = 'templates' ||
|| CommandsModules providedthat byprovide modulescommands | select * from nt:base where jcr:path like '/modules/%/commands/%' | | select * from \[mgnl:content\] as t where ISDESCENDANTNODE(\[/modules\]) and name(t) = 'commands' ||


Note: you can use the [translator|http://people.apache.org/~mreutegg/jcr-query-translator/] to convert from one format to another.