@Transactional(readOnly=true) public class QueryImpl extends AbstractLevel1Service implements LocalQuery
| Modifier and Type | Field and Description |
|---|---|
protected Class<? extends org.apache.lucene.analysis.Analyzer> |
analyzer |
queryFactory, sessionFactory| Constructor and Description |
|---|
QueryImpl() |
| Modifier and Type | Method and Description |
|---|---|
Long |
aggByQuery(String agg,
String field,
String query,
Parameters params) |
Map<String,Long> |
aggMapByQuery(String agg,
String mapKey,
String field,
String query,
Parameters params) |
boolean |
checkProperty(String type,
String property)
Checks if a property is defined on a mapped Hibernate type.
|
boolean |
checkType(String type)
Checks if a type has been mapped in Hibernate.
|
void |
clear() |
boolean |
contains(Object obj)
Tests if an object is currently contained in the session.
|
void |
evict(Object obj)
Removes an object graph from the session.
|
<T> T |
execute(org.springframework.orm.hibernate3.HibernateCallback callback)
Executes a
HibernateCallback |
<T> T |
execute(Query<T> query)
Executes a locally defined Query.
|
IObject |
find(Class klass,
long id)
lookup an entity by class and id.
|
<T extends IObject> |
findAll(Class<T> klass,
Filter filter)
lookup all entities that belong to this class and match filter.
|
<T extends IObject> |
findAllByExample(T example,
Filter filter)
search based on provided example entity.
|
<T extends IObject> |
findAllByFullText(Class<T> type,
String query,
Parameters params)
executes a full text search based on Lucene.
|
<T extends IObject> |
findAllByQuery(String queryName,
Parameters params)
executes the stored query with the given name.
|
<T extends IObject> |
findAllByString(Class<T> klass,
String fieldName,
String value,
boolean caseSensitive,
Filter filter)
search a given field matching against a String.
|
<T extends IObject> |
findByExample(T example)
search based on provided example entity.
|
<T extends IObject> |
findByQuery(String queryName,
Parameters params)
executes the stored query with the given name.
|
<T extends IObject> |
findByString(Class<T> klass,
String fieldName,
String value)
search a given field matching against a String.
|
IObject |
get(Class klass,
long id)
lookup an entity by class and id.
|
Class<? extends ServiceInterface> |
getServiceInterface() |
void |
initialize(Object obj)
Uses the Hibernate static method
initialize to prepare an
object for shipping over the wire. |
protected void |
parseFilter(org.hibernate.Criteria c,
Filter f)
Responsible for applying the information provided in a
Filter to a Criteria
instance. |
List<Object[]> |
projection(String query,
Parameters p)
|
<T extends IObject> |
refresh(T iObject)
refreshes an entire
IObject graph, recursive loading all data for
the managed instances in the graph from the database. |
void |
setAnalyzer(Class<? extends org.apache.lucene.analysis.Analyzer> analyzer) |
getBeanHelper, getQueryFactory, getSessionFactory, selfConfigure, setQueryFactory, setSessionFactoryprotected Class<? extends org.apache.lucene.analysis.Analyzer> analyzer
public void setAnalyzer(Class<? extends org.apache.lucene.analysis.Analyzer> analyzer)
public Class<? extends ServiceInterface> getServiceInterface()
getServiceInterface in interface SelfConfigurableService@Transactional(readOnly=false) public boolean contains(Object obj)
LocalQuerycontains in interface LocalQuery@Transactional(readOnly=false) public void evict(Object obj)
LocalQueryevict in interface LocalQuery@Transactional(readOnly=false) public void clear()
clear in interface LocalQuerypublic void initialize(Object obj)
LocalQueryinitialize to prepare an
object for shipping over the wire.
It is better to do this in your queries.initialize in interface LocalQueryHibernate@Transactional(propagation=SUPPORTS) public boolean checkType(String type)
LocalQuerycheckType in interface LocalQuerytype - String representation of a full-qualified Hibernate-mapped
type.@Transactional(propagation=SUPPORTS) public boolean checkProperty(String type, String property)
LocalQuerycheckProperty in interface LocalQuerytype - String representation of a full-qualified Hibernate-mapped
type.property - Property as defined in Hibernate NOT the public final static
Strings on our IObject classes.public <T> T execute(org.springframework.orm.hibernate3.HibernateCallback callback)
LocalQueryHibernateCallbackexecute in interface LocalQuerycallback - An implementation of the HibernateCallback interface.LocalQuery.execute(HibernateCallback)public <T> T execute(Query<T> query)
LocalQueryexecute in interface LocalQueryquery - A subclass of the Query interface.LocalQuery.execute(Query)public IObject get(Class klass, long id) throws ValidationException
IQueryget in interface IQueryklass - the type of the entity. Not null.id - the entity's idValidationException - if the id doesn't exist.public IObject find(Class klass, long id)
IQuerypublic <T extends IObject> List<T> findAll(Class<T> klass, Filter filter)
IQuerypublic <T extends IObject> T findByExample(T example) throws ApiUsageException
IQueryid field. For
that, use IQuery.find(Class, long), IQuery.get(Class, long),
IQuery.findByQuery(String, Parameters), or
IQuery.findAllByQuery(String, Parameters)findByExample in interface IQueryexample - Non-null example object.ApiUsageException - if more than one result is return.public <T extends IObject> List<T> findAllByExample(T example, Filter filter)
IQueryFilter object.
Note: findAllbyExample does not operate on the id field.
For that, use IQuery.find(Class, long), IQuery.get(Class, long),
IQuery.findByQuery(String, Parameters), or
IQuery.findAllByQuery(String, Parameters)findAllByExample in interface IQueryexample - Non-null example object.filter - filters the result set. Can be null.public <T extends IObject> T findByString(Class<T> klass, String fieldName, String value) throws ApiUsageException
IQueryfindByString in interface IQueryklass - type of entity to be searchedfieldName - the name of the field, either as simple string or as public
final static from the entity class, e.g.
Project.NAMEvalue - String used for search.ApiUsageException - if more than one result.public <T extends IObject> List<T> findAllByString(Class<T> klass, String fieldName, String value, boolean caseSensitive, Filter filter) throws ApiUsageException
IQueryFilter instance.findAllByString in interface IQueryklass - type of entity to be searched. Not null.fieldName - the name of the field, either as simple string or as public
final static from the entity class, e.g.
Project.NAME. Not null.value - String used for search. Not null.caseSensitive - whether to use LIKE or ILIKEfilter - filters the result set. Can be null.ApiUsageExceptionpublic <T extends IObject> T findByQuery(String queryName, Parameters params) throws ValidationException
IQueryfindByQuery in interface IQueryqueryName - String identifier of the query to executeparams - array of QueryParameter. Not null. The
QueryParameter.name field maps to a field-name which
is then matched against the QueryParameter.valueValidationExceptionpublic <T extends IObject> List<T> findAllByQuery(String queryName, Parameters params)
IQueryIObject instances. This means
all must be of the form:
select this from SomeModelClass this ...though the alias "this" is unimportant. Do not try to return multiple classes in one call like:
select this, that from SomeClass this, SomeOtherClass that ...nor to project values out of an object:
select this.name from SomeClass this ...If a page is desired, add it to the query parameters.
findAllByQuery in interface IQueryqueryName - String identifier of the query to execute. Not null.params - array of QueryParameter. The
QueryParameter.name field maps to a field-name which
is then matched against the QueryParameter.valuepublic <T extends IObject> List<T> findAllByFullText(Class<T> type, String query, Parameters params)
IQueryfindAllByFullText in interface IQuerytype - A non-null class specification of which type should be
searched.query - A non-null query string. An empty string will return no
results.params - Currently the parameters themselves are unusued. But the
Parameters.filter can be used to limit the number
of results returned (Filter.limit) or the
user for who the results will be found (Filter.owner()).IObject instances. Never null.public List<Object[]> projection(String query, Parameters p)
IQueryObject instances (not IObject
instances). These are the column names as specified in the HQL
select statement (more than one is required).
If an aggregation statement is used, a group by clause must be added.
Examples:
projection in interface IQuerypublic Long aggByQuery(String agg, String field, String query, Parameters params)
public Map<String,Long> aggMapByQuery(String agg, String mapKey, String field, String query, Parameters params)
public <T extends IObject> T refresh(T iObject) throws ApiUsageException
IQueryIObject graph, recursive loading all data for
the managed instances in the graph from the database. If any non-managed
entities are detected (e.g. without ids), an ApiUsageException
will be thrown.refresh in interface IQueryiObject - Non-null managed IObject graph which should have all
values re-assigned from the databaseIObject graph (with possible additions and
deletions) which is in-sync with the database.ApiUsageException - if any non-managed entities are found.
Version: 5.3.4-ice35-b69
Copyright © 2017 The University of Dundee & Open Microscopy Environment. All Rights Reserved.