There are times when you may have to write contains query to support a suggestion drop-down or standard search functionality. ATG Object Oriented Query Language (RQL) supports contains query with the help of simple RQL API. QueryBuilder.createPatternMatchQuery(QueryExpression, QueryExpression, Integer) would help you fire a contains query against your relational data store.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
package com.ourownjava.atg.repository; import atg.adapter.gsa.GSARepository; import atg.repository.Query; import atg.repository.QueryBuilder; import atg.repository.QueryExpression; import atg.repository.RepositoryException; import atg.repository.RepositoryItem; import atg.repository.RepositoryView; /** * * @author ourownjava.com */ public class EmployeeTool { private GSARepository gsaRepository; public void setGsaRepository(final GSARepository gsaRepository) { this.gsaRepository = gsaRepository; } public RepositoryItem[] findSuggestions(final String name) throws RepositoryException { final RepositoryView employeeView = gsaRepository.getView("EMPLOYEE"); final QueryBuilder queryBuilder = employeeView.getQueryBuilder(); final QueryExpression propertyExpression = queryBuilder .createPropertyQueryExpression("name"); final QueryExpression valueExpression = queryBuilder .createConstantQueryExpression(name); final Query accountQuery = queryBuilder.createPatternMatchQuery( propertyExpression, valueExpression, QueryBuilder.CONTAINS); final RepositoryItem[] repositoryItems = employeeView .executeQuery(accountQuery); return repositoryItems; } } |
Pingback: How to write contains/suggestion/match query using ATG RQL? | Clean Java