Class XWikiHibernateStore
- java.lang.Object
-
- com.xpn.xwiki.internal.store.AbstractXWikiStore
-
- com.xpn.xwiki.store.XWikiHibernateBaseStore
-
- com.xpn.xwiki.store.XWikiHibernateStore
-
- All Implemented Interfaces:
XWikiStoreInterface
,org.xwiki.component.phase.Initializable
@Component @Named("hibernate") @Singleton public class XWikiHibernateStore extends XWikiHibernateBaseStore implements XWikiStoreInterface, org.xwiki.component.phase.Initializable
The XWiki Hibernate database driver.- Version:
- $Id: 60f159c932685e6344f6d8578913173c379d7eaf $
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.xpn.xwiki.store.XWikiHibernateBaseStore
XWikiHibernateBaseStore.HibernateCallback<T>
-
-
Field Summary
-
Fields inherited from class com.xpn.xwiki.store.XWikiHibernateBaseStore
hibernateConfiguration, HINT, loggerManager, store
-
-
Constructor Summary
Constructors Constructor Description XWikiHibernateStore()
Empty constructor needed for component manager.XWikiHibernateStore(XWikiContext context)
Deprecated.1.6M1.XWikiHibernateStore(XWiki xwiki, XWikiContext context)
Deprecated.1.6M1.XWikiHibernateStore(String hibpath)
Deprecated.1.6M1.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description int
countDocuments(String wheresql, XWikiContext context)
API allowing to count the total number of documents that would be returned by a query.int
countDocuments(String parametrizedSqlClause, List<?> parameterValues, XWikiContext context)
API allowing to count the total number of documents that would be returned by a parameterized query.protected String
createSQLQuery(String queryPrefix, String whereSQL)
void
createWiki(String wikiName, XWikiContext inputxcontext)
Allows to create a new wiki database and initialize the default tables.void
deleteLinks(long docId, XWikiContext inputxcontext, boolean bTransaction)
Deprecated.void
deleteLock(XWikiLock lock, XWikiContext inputxcontext, boolean bTransaction)
void
deleteWiki(String wikiName, XWikiContext inputxcontext)
Delete a wiki database.void
deleteXWikiCollection(BaseCollection object, XWikiContext inputxcontext, boolean bTransaction, boolean evict)
Deprecated.This is internal to XWikiHibernateStore and may be removed in the future.void
deleteXWikiDoc(XWikiDocument doc, XWikiContext inputxcontext)
protected void
executeDeleteWikiStatement(Statement statement, DatabaseProduct databaseProduct, String escapedSchemaName)
Execute the SQL statement on the database to remove a wiki.boolean
exists(XWikiDocument doc, XWikiContext inputxcontext)
Verifies if a wiki document existsList<String>
getClassList(XWikiContext inputxcontext)
protected String
getColumnsForSelectStatement(String whereSQL)
void
getContent(XWikiDocument doc, StringBuffer buf)
List<String>
getCustomMappingPropertyList(BaseClass bclass)
int
getLimitSize(XWikiContext context, Class<?> entityType, String propertyName)
Get the limit size of a property.QueryManager
getQueryManager()
List<String>
getTranslationList(XWikiDocument doc, XWikiContext context)
void
initialize()
boolean
injectCustomMapping(BaseClass doc1class)
boolean
injectCustomMapping(BaseClass doc1class, XWikiContext inputxcontext)
boolean
injectCustomMapping(String className, String customMapping, XWikiContext inputxcontext)
boolean
injectCustomMappings(XWikiDocument doc, XWikiContext inputxcontext)
void
injectCustomMappings(XWikiContext context)
org.hibernate.SessionFactory
injectCustomMappingsInSessionFactory(BaseClass bclass, XWikiContext context)
org.hibernate.SessionFactory
injectCustomMappingsInSessionFactory(XWikiContext inputxcontext)
void
injectUpdatedCustomMappings(XWikiContext context)
boolean
isCustomMappingValid(BaseClass bclass, String custommapping1)
boolean
isCustomMappingValid(BaseClass bclass, String custommapping1, XWikiContext context)
Deprecated.boolean
isWikiNameAvailable(String wikiName, XWikiContext inputxcontext)
Indicate if the provided wiki name could be used to create a new wiki.List<String>
loadBacklinks(String fullName, XWikiContext inputxcontext, boolean bTransaction)
Deprecated.since 2.2M2 useloadBacklinks(DocumentReference, boolean, XWikiContext)
List<DocumentReference>
loadBacklinks(AttachmentReference attachmentReference, boolean bTransaction, XWikiContext inputxcontext)
Deprecated.List<DocumentReference>
loadBacklinks(DocumentReference documentReference, boolean bTransaction, XWikiContext inputxcontext)
Deprecated.List<XWikiLink>
loadLinks(long docId, XWikiContext inputxcontext, boolean bTransaction)
Deprecated.XWikiLock
loadLock(long docId, XWikiContext inputxcontext, boolean bTransaction)
void
loadXWikiCollection(BaseCollection object, XWikiContext context, boolean bTransaction)
Deprecated.This is internal to XWikiHibernateStore and may be removed in the future.XWikiDocument
loadXWikiDoc(XWikiDocument defaultDocument, XWikiContext inputxcontext)
void
renameXWikiDoc(XWikiDocument doc, DocumentReference newReference, XWikiContext inputxcontext)
Atomic operation for renaming a document.void
saveLinks(XWikiDocument doc, XWikiContext inputxcontext, boolean bTransaction)
Deprecated.void
saveLock(XWikiLock lock, XWikiContext inputxcontext, boolean bTransaction)
void
saveXWikiCollection(BaseCollection object, XWikiContext inputxcontext, boolean bTransaction)
Deprecated.This is internal to XWikiHibernateStore and may be removed in the future.void
saveXWikiDoc(XWikiDocument doc, XWikiContext context)
void
saveXWikiDoc(XWikiDocument doc, XWikiContext inputxcontext, boolean bTransaction)
<T> List<T>
search(String sql, int nb, int start, XWikiContext context)
Execute a reading request and return result.<T> List<T>
search(String sql, int nb, int start, Object[][] whereParams, XWikiContext context)
Execute a reading request and return result.<T> List<T>
search(String sql, int nb, int start, Object[][] whereParams, List<?> parameterValues, XWikiContext inputxcontext)
Execute a reading request with parameters and return result.<T> List<T>
search(String sql, int nb, int start, List<?> parameterValues, XWikiContext context)
Execute a reading request with parameters and return result.List
search(org.hibernate.query.Query query, int nb, int start, XWikiContext inputxcontext)
List<DocumentReference>
searchDocumentReferences(String wheresql, int nb, int start, XWikiContext context)
List<DocumentReference>
searchDocumentReferences(String wheresql, int nb, int start, String selectColumns, XWikiContext context)
List<DocumentReference>
searchDocumentReferences(String parametrizedSqlClause, int nb, int start, List<?> parameterValues, XWikiContext context)
Search documents by passing HQL where clause values as parameters.List<DocumentReference>
searchDocumentReferences(String wheresql, XWikiContext context)
List<DocumentReference>
searchDocumentReferences(String parametrizedSqlClause, List<?> parameterValues, XWikiContext context)
Same asXWikiStoreInterface.searchDocumentReferences(String, int, int, List, XWikiContext)
but returns all rows.List<XWikiDocument>
searchDocuments(String wheresql, boolean distinctbylanguage, boolean customMapping, boolean checkRight, int nb, int start, XWikiContext context)
Search documents in the storing system.List<XWikiDocument>
searchDocuments(String wheresql, boolean distinctbylanguage, boolean customMapping, boolean checkRight, int nb, int start, List<?> parameterValues, XWikiContext inputxcontext)
Search documents in the storing system.List<XWikiDocument>
searchDocuments(String wheresql, boolean distinctbylanguage, boolean customMapping, int nb, int start, XWikiContext context)
Search documents in the storing system.List<XWikiDocument>
searchDocuments(String wheresql, boolean distinctbylanguage, boolean customMapping, int nb, int start, List<?> parameterValues, XWikiContext context)
Search documents in the storing system.List<XWikiDocument>
searchDocuments(String wheresql, boolean distinctbylanguage, boolean customMapping, XWikiContext context)
Search documents in the storing system.List<XWikiDocument>
searchDocuments(String wheresql, boolean distinctbylanguage, int nb, int start, XWikiContext context)
Search documents in the storing system.List<XWikiDocument>
searchDocuments(String wheresql, boolean distinctbylanguage, int nb, int start, List<?> parameterValues, XWikiContext context)
Search documents in the storing system.List<XWikiDocument>
searchDocuments(String wheresql, boolean distinctbylanguage, XWikiContext context)
Search documents in the storing system.List<XWikiDocument>
searchDocuments(String wheresql, int nb, int start, XWikiContext context)
Search documents in the storing system.List<XWikiDocument>
searchDocuments(String wheresql, int nb, int start, List<?> parameterValues, XWikiContext context)
Search documents in the storing system.List<XWikiDocument>
searchDocuments(String wheresql, XWikiContext context)
Search documents in the storing system.List<XWikiDocument>
searchDocuments(String wheresql, List<?> parameterValues, XWikiContext context)
Search documents in the storing system.List<String>
searchDocumentsNames(String wheresql, int nb, int start, XWikiContext context)
List<String>
searchDocumentsNames(String wheresql, int nb, int start, String selectColumns, XWikiContext context)
List<String>
searchDocumentsNames(String parametrizedSqlClause, int nb, int start, List<?> parameterValues, XWikiContext context)
List<String>
searchDocumentsNames(String wheresql, XWikiContext context)
List<String>
searchDocumentsNames(String parametrizedSqlClause, List<?> parameterValues, XWikiContext context)
-
Methods inherited from class com.xpn.xwiki.store.XWikiHibernateBaseStore
beginTransaction, beginTransaction, beginTransaction, beginTransaction, checkHibernate, cleanUp, createHibernateSequenceIfRequired, dynamicMappingTableName, endTransaction, endTransaction, escapeSchema, execute, execute, executeRead, executeRead, executeWrite, executeWrite, failSafeExecute, failSafeExecuteRead, failSafeExecuteWrite, getConfiguration, getConnections, getDatabaseMetaData, getDatabaseProductName, getDatabaseProductName, getDialect, getExecution, getHint, getMapping, getMetadata, getNbConnections, getPath, getSchemaFromWikiName, getSchemaFromWikiName, getSchemaFromWikiName, getSchemaUpdateScript, getSession, getSessionFactory, getTransaction, isInSchemaMode, isVirtual, makeMapping, setDatabase, setNbConnections, setPath, setSession, setSessionFactory, setTransaction, shutdownHibernate, updateSchema, updateSchema, updateSchema, updateSchema
-
Methods inherited from class com.xpn.xwiki.internal.store.AbstractXWikiStore
getExecutionXContext, restoreExecutionXContext
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.xpn.xwiki.store.XWikiStoreInterface
cleanUp
-
-
-
-
Constructor Detail
-
XWikiHibernateStore
@Deprecated public XWikiHibernateStore(XWiki xwiki, XWikiContext context)
Deprecated.1.6M1. Use ComponentManager.lookup(XWikiStoreInterface.class) instead.This allows to initialize our storage engine. The hibernate config file path is taken from xwiki.cfg or directly in the WEB-INF directory.- Parameters:
xwiki
-context
-
-
XWikiHibernateStore
@Deprecated public XWikiHibernateStore(String hibpath)
Deprecated.1.6M1. Use ComponentManager.lookup(XWikiStoreInterface.class) instead.Initialize the storage engine with a specific path. This is used for tests.- Parameters:
hibpath
-
-
XWikiHibernateStore
@Deprecated public XWikiHibernateStore(XWikiContext context)
Deprecated.1.6M1. Use ComponentManager.lookup(XWikiStoreInterface.class) instead.- See Also:
XWikiHibernateStore(XWiki, XWikiContext)
-
XWikiHibernateStore
public XWikiHibernateStore()
Empty constructor needed for component manager.
-
-
Method Detail
-
initialize
public void initialize() throws org.xwiki.component.phase.InitializationException
- Specified by:
initialize
in interfaceorg.xwiki.component.phase.Initializable
- Throws:
org.xwiki.component.phase.InitializationException
-
isWikiNameAvailable
public boolean isWikiNameAvailable(String wikiName, XWikiContext inputxcontext) throws XWikiException
Description copied from interface:XWikiStoreInterface
Indicate if the provided wiki name could be used to create a new wiki.- Specified by:
isWikiNameAvailable
in interfaceXWikiStoreInterface
- Parameters:
wikiName
- the name of the wiki.inputxcontext
- the XWiki context.- Returns:
- true if the name is already used, false otherwise.
- Throws:
XWikiException
- error when looking if wiki name already used.
-
createWiki
public void createWiki(String wikiName, XWikiContext inputxcontext) throws XWikiException
Description copied from interface:XWikiStoreInterface
Allows to create a new wiki database and initialize the default tables.- Specified by:
createWiki
in interfaceXWikiStoreInterface
- Parameters:
wikiName
- the name of the new wiki.inputxcontext
- the XWiki context.- Throws:
XWikiException
- error when creating new wiki.
-
deleteWiki
public void deleteWiki(String wikiName, XWikiContext inputxcontext) throws XWikiException
Description copied from interface:XWikiStoreInterface
Delete a wiki database.- Specified by:
deleteWiki
in interfaceXWikiStoreInterface
- Parameters:
wikiName
- the name of the wiki.inputxcontext
- the XWiki context.- Throws:
XWikiException
- error when deleting wiki database.
-
executeDeleteWikiStatement
protected void executeDeleteWikiStatement(Statement statement, DatabaseProduct databaseProduct, String escapedSchemaName) throws SQLException
Execute the SQL statement on the database to remove a wiki.- Parameters:
statement
- the statement object on which to execute the wiki deletiondatabaseProduct
- the database typeescapedSchemaName
- the subwiki schema name being deleted- Throws:
SQLException
- in case of an error while deleting the sub wiki
-
exists
public boolean exists(XWikiDocument doc, XWikiContext inputxcontext) throws XWikiException
Verifies if a wiki document exists- Specified by:
exists
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
saveXWikiDoc
public void saveXWikiDoc(XWikiDocument doc, XWikiContext inputxcontext, boolean bTransaction) throws XWikiException
- Specified by:
saveXWikiDoc
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
saveXWikiDoc
public void saveXWikiDoc(XWikiDocument doc, XWikiContext context) throws XWikiException
- Specified by:
saveXWikiDoc
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
renameXWikiDoc
public void renameXWikiDoc(XWikiDocument doc, DocumentReference newReference, XWikiContext inputxcontext) throws XWikiException
Atomic operation for renaming a document. This operation will rename the document in DB by performing updates in all tables the document name is used. This implementation of rename relies onsaveXWikiDoc(XWikiDocument, XWikiContext, boolean)
anddeleteXWikiDoc(XWikiDocument, XWikiContext, boolean)
. The idea here is that the document reference has many impacts everywhere and it's actually safer to keep relying on existing save method. Now all the benefit of this rename, is to call those methods in the same transaction when both old and new reference belong to the same wiki (same database). If the references belong to different databases we are force to use two transactions.- Specified by:
renameXWikiDoc
in interfaceXWikiStoreInterface
- Parameters:
doc
- the actual document instance to rename.newReference
- the new reference to use for renaming.inputxcontext
- the current context.- Throws:
XWikiException
- in case of problem during the rename.
-
loadXWikiDoc
public XWikiDocument loadXWikiDoc(XWikiDocument defaultDocument, XWikiContext inputxcontext) throws XWikiException
- Specified by:
loadXWikiDoc
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
deleteXWikiDoc
public void deleteXWikiDoc(XWikiDocument doc, XWikiContext inputxcontext) throws XWikiException
- Specified by:
deleteXWikiDoc
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
saveXWikiCollection
@Deprecated public void saveXWikiCollection(BaseCollection object, XWikiContext inputxcontext, boolean bTransaction) throws XWikiException
Deprecated.This is internal to XWikiHibernateStore and may be removed in the future.- Throws:
XWikiException
-
loadXWikiCollection
@Deprecated public void loadXWikiCollection(BaseCollection object, XWikiContext context, boolean bTransaction) throws XWikiException
Deprecated.This is internal to XWikiHibernateStore and may be removed in the future.- Throws:
XWikiException
-
deleteXWikiCollection
@Deprecated public void deleteXWikiCollection(BaseCollection object, XWikiContext inputxcontext, boolean bTransaction, boolean evict) throws XWikiException
Deprecated.This is internal to XWikiHibernateStore and may be removed in the future.- Throws:
XWikiException
-
loadLock
public XWikiLock loadLock(long docId, XWikiContext inputxcontext, boolean bTransaction) throws XWikiException
- Specified by:
loadLock
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
saveLock
public void saveLock(XWikiLock lock, XWikiContext inputxcontext, boolean bTransaction) throws XWikiException
- Specified by:
saveLock
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
deleteLock
public void deleteLock(XWikiLock lock, XWikiContext inputxcontext, boolean bTransaction) throws XWikiException
- Specified by:
deleteLock
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
loadLinks
@Deprecated(since="14.8RC1") public List<XWikiLink> loadLinks(long docId, XWikiContext inputxcontext, boolean bTransaction) throws XWikiException
Deprecated.- Specified by:
loadLinks
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
loadBacklinks
@Deprecated(since="14.8RC1") public List<DocumentReference> loadBacklinks(DocumentReference documentReference, boolean bTransaction, XWikiContext inputxcontext) throws XWikiException
Deprecated.Description copied from interface:XWikiStoreInterface
Returns the backlinks for the given document reference.- Specified by:
loadBacklinks
in interfaceXWikiStoreInterface
- Parameters:
documentReference
- the document reference to search backlinks forbTransaction
-true
if a transaction must be createinputxcontext
- the current context- Throws:
XWikiException
-
loadBacklinks
@Deprecated(since="14.8RC1") public List<DocumentReference> loadBacklinks(AttachmentReference attachmentReference, boolean bTransaction, XWikiContext inputxcontext) throws XWikiException
Deprecated.Description copied from interface:XWikiStoreInterface
Returns the backlinks for the given attachment reference.- Specified by:
loadBacklinks
in interfaceXWikiStoreInterface
- Parameters:
attachmentReference
- the attachment reference to search backlinks forbTransaction
-true
if a transaction must be createinputxcontext
- the current context- Throws:
XWikiException
-
loadBacklinks
@Deprecated public List<String> loadBacklinks(String fullName, XWikiContext inputxcontext, boolean bTransaction) throws XWikiException
Deprecated.since 2.2M2 useloadBacklinks(DocumentReference, boolean, XWikiContext)
- Specified by:
loadBacklinks
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
saveLinks
@Deprecated(since="14.8RC1") public void saveLinks(XWikiDocument doc, XWikiContext inputxcontext, boolean bTransaction) throws XWikiException
Deprecated.- Specified by:
saveLinks
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
deleteLinks
@Deprecated(since="14.8RC1") public void deleteLinks(long docId, XWikiContext inputxcontext, boolean bTransaction) throws XWikiException
Deprecated.- Specified by:
deleteLinks
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
getContent
public void getContent(XWikiDocument doc, StringBuffer buf)
-
getClassList
public List<String> getClassList(XWikiContext inputxcontext) throws XWikiException
- Specified by:
getClassList
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
searchDocumentReferences
public List<DocumentReference> searchDocumentReferences(String parametrizedSqlClause, List<?> parameterValues, XWikiContext context) throws XWikiException
Description copied from interface:XWikiStoreInterface
Same asXWikiStoreInterface.searchDocumentReferences(String, int, int, List, XWikiContext)
but returns all rows.- Specified by:
searchDocumentReferences
in interfaceXWikiStoreInterface
- Throws:
XWikiException
- See Also:
XWikiStoreInterface.searchDocumentReferences(String, int, int, java.util.List, com.xpn.xwiki.XWikiContext)
-
searchDocumentsNames
public List<String> searchDocumentsNames(String parametrizedSqlClause, List<?> parameterValues, XWikiContext context) throws XWikiException
- Specified by:
searchDocumentsNames
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
searchDocumentReferences
public List<DocumentReference> searchDocumentReferences(String parametrizedSqlClause, int nb, int start, List<?> parameterValues, XWikiContext context) throws XWikiException
Description copied from interface:XWikiStoreInterface
Search documents by passing HQL where clause values as parameters. This allows generating a Named HQL query which will automatically encode the passed values (like escaping single quotes). This API is recommended to be used over the other similar methods where the values are passed inside the where clause and for which you'll need to do the encoding/escaping yourself before calling them.Example:
#set($orphans = $xwiki.searchDocuments(" where doc.fullName <> ?1 and (doc.parent = ?2 or " + "(doc.parent = ?3 and doc.space = ?4))", ["${doc.fullName}as", ${doc.fullName}, ${doc.name}, ${doc.space}]))
- Specified by:
searchDocumentReferences
in interfaceXWikiStoreInterface
- Parameters:
parametrizedSqlClause
- the HQL where clause. For example:where doc.fullName <> ?1 and (doc.parent = ?2 or (doc.parent = ?3 and doc.space = ?4))
nb
- the number of rows to return. If 0 then all rows are returnedstart
- the number of rows to skip. If 0 don't skip any rowparameterValues
- the where clause values that replace the question marks (?)context
- the XWiki context required for getting information about the execution context- Returns:
- a list of document references
- Throws:
XWikiException
- in case of error while performing the query
-
searchDocumentsNames
public List<String> searchDocumentsNames(String parametrizedSqlClause, int nb, int start, List<?> parameterValues, XWikiContext context) throws XWikiException
- Specified by:
searchDocumentsNames
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
searchDocumentReferences
public List<DocumentReference> searchDocumentReferences(String wheresql, XWikiContext context) throws XWikiException
- Specified by:
searchDocumentReferences
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
searchDocumentsNames
public List<String> searchDocumentsNames(String wheresql, XWikiContext context) throws XWikiException
- Specified by:
searchDocumentsNames
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
searchDocumentReferences
public List<DocumentReference> searchDocumentReferences(String wheresql, int nb, int start, XWikiContext context) throws XWikiException
- Specified by:
searchDocumentReferences
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
searchDocumentsNames
public List<String> searchDocumentsNames(String wheresql, int nb, int start, XWikiContext context) throws XWikiException
- Specified by:
searchDocumentsNames
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
searchDocumentReferences
public List<DocumentReference> searchDocumentReferences(String wheresql, int nb, int start, String selectColumns, XWikiContext context) throws XWikiException
- Specified by:
searchDocumentReferences
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
searchDocumentsNames
public List<String> searchDocumentsNames(String wheresql, int nb, int start, String selectColumns, XWikiContext context) throws XWikiException
- Specified by:
searchDocumentsNames
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
search
public <T> List<T> search(String sql, int nb, int start, XWikiContext context) throws XWikiException
Description copied from interface:XWikiStoreInterface
Execute a reading request and return result.- Specified by:
search
in interfaceXWikiStoreInterface
- Parameters:
sql
- the HQL request clause. For example:where doc.fullName <> ?1 and (doc.parent = ?2 or (doc.parent = ?3 and doc.space = ?4))
nb
- the number of rows to return. If 0 then all rows are returned.start
- the number of rows to skip. If 0 don't skip any row.context
- the XWiki context required for getting information about the execution context.- Returns:
- a list of XWikiDocument.
- Throws:
XWikiException
- in case of error while performing the query.
-
search
public <T> List<T> search(String sql, int nb, int start, List<?> parameterValues, XWikiContext context) throws XWikiException
Description copied from interface:XWikiStoreInterface
Execute a reading request with parameters and return result.Execute query by passing HQL request values as parameters. This allows generating a Named HQL query which will automatically encode the passed values (like escaping single quotes). This API is recommended to be used over the other similar methods where the values are passed inside the where clause and for which you'll need to do the encoding/escaping yourself before calling them.
- Specified by:
search
in interfaceXWikiStoreInterface
- Parameters:
sql
- the HQL request.nb
- the number of rows to return. If 0 then all rows are returned.start
- the number of rows to skip. If 0 don't skip any row.parameterValues
- the where clause values that replace the question marks (?).context
- the XWiki context required for getting information about the execution context.- Returns:
- a list of XWikiDocument.
- Throws:
XWikiException
- in case of error while performing the query.
-
search
public <T> List<T> search(String sql, int nb, int start, Object[][] whereParams, XWikiContext context) throws XWikiException
Description copied from interface:XWikiStoreInterface
Execute a reading request and return result.- Specified by:
search
in interfaceXWikiStoreInterface
- Parameters:
sql
- the HQL request.nb
- the number of rows to return. If 0 then all rows are returned.start
- the number of rows to skip. If 0 don't skip any row.whereParams
- if not null add tosql
a where clause based on a table of table containing field name, field value and compared symbol (=
,>
, etc.).context
- the XWiki context required for getting information about the execution context.- Returns:
- a list of XWikiDocument.
- Throws:
XWikiException
- in case of error while performing the query.
-
search
public <T> List<T> search(String sql, int nb, int start, Object[][] whereParams, List<?> parameterValues, XWikiContext inputxcontext) throws XWikiException
Description copied from interface:XWikiStoreInterface
Execute a reading request with parameters and return result.Execute query by passing HQL request values as parameters. This allows generating a Named HQL query which will automatically encode the passed values (like escaping single quotes). This API is recommended to be used over the other similar methods where the values are passed inside the where clause and for which you'll need to do the encoding/escaping yourself before calling them.
- Specified by:
search
in interfaceXWikiStoreInterface
- Parameters:
sql
- the HQL request.nb
- the number of rows to return. If 0 then all rows are returned.start
- the number of rows to skip. If 0 don't skip any row.whereParams
- if not null add tosql
a where clause based on a table of table containing field name, field value and compared symbol (=
,>
, etc.).parameterValues
- the where clause values that replace the question marks (?).inputxcontext
- the XWiki context required for getting information about the execution context.- Returns:
- a list of XWikiDocument.
- Throws:
XWikiException
- in case of error while performing the query.
-
search
public List search(org.hibernate.query.Query query, int nb, int start, XWikiContext inputxcontext) throws XWikiException
- Throws:
XWikiException
-
countDocuments
public int countDocuments(String wheresql, XWikiContext context) throws XWikiException
Description copied from interface:XWikiStoreInterface
API allowing to count the total number of documents that would be returned by a query.- Specified by:
countDocuments
in interfaceXWikiStoreInterface
- Parameters:
wheresql
- Query to use, similar to the ones accepted byXWikiStoreInterface.searchDocuments(String, XWikiContext)
. It should not containorder by
orgroup
clauses, since this kind of queries are not portable.context
- The current request context.- Returns:
- The number of documents that matched the query.
- Throws:
XWikiException
- if there was a problem executing the query.
-
countDocuments
public int countDocuments(String parametrizedSqlClause, List<?> parameterValues, XWikiContext context) throws XWikiException
Description copied from interface:XWikiStoreInterface
API allowing to count the total number of documents that would be returned by a parameterized query.- Specified by:
countDocuments
in interfaceXWikiStoreInterface
- Parameters:
parametrizedSqlClause
- Parameterized query to use, similar to the ones accepted byXWikiStoreInterface.searchDocuments(String, List, XWikiContext)
. It should not containorder by
orgroup
clauses, since this kind of queries are not portable.parameterValues
- The parameter values that replace the question marks.context
- The current request context.- Returns:
- The number of documents that matched the query.
- Throws:
XWikiException
- if there was a problem executing the query.
-
searchDocuments
public List<XWikiDocument> searchDocuments(String wheresql, boolean distinctbylanguage, boolean customMapping, boolean checkRight, int nb, int start, XWikiContext context) throws XWikiException
Description copied from interface:XWikiStoreInterface
Search documents in the storing system.- Specified by:
searchDocuments
in interfaceXWikiStoreInterface
- Parameters:
wheresql
- the HQL where clause. For example:where doc.fullName <> ?1 and (doc.parent = ?2 or (doc.parent = ?3 and doc.space = ?4))
distinctbylanguage
- when a document has multiple version for each language it is returned as one document a language.customMapping
- inject custom mapping in session.checkRight
- if true check for each found document if context's user has "view" rights for it.nb
- the number of rows to return. If 0 then all rows are returned.start
- the number of rows to skip. If 0 don't skip any row.context
- the XWiki context required for getting information about the execution context.- Returns:
- a list of XWikiDocument.
- Throws:
XWikiException
- in case of error while performing the query.
-
searchDocuments
public List<XWikiDocument> searchDocuments(String wheresql, boolean distinctbylanguage, boolean customMapping, boolean checkRight, int nb, int start, List<?> parameterValues, XWikiContext inputxcontext) throws XWikiException
Description copied from interface:XWikiStoreInterface
Search documents in the storing system.Search documents by passing HQL where clause values as parameters. This allows generating a Named HQL query which will automatically encode the passed values (like escaping single quotes). This API is recommended to be used over the other similar methods where the values are passed inside the where clause and for which you'll need to do the encoding/escpaing yourself before calling them.
- Specified by:
searchDocuments
in interfaceXWikiStoreInterface
- Parameters:
wheresql
- the HQL where clause. For example:where doc.fullName <> ?1 and (doc.parent = ?2 or (doc.parent = ?3 and doc.space = ?4))
distinctbylanguage
- when a document has multiple version for each language it is returned as one document a language.customMapping
- inject custom mapping in session.checkRight
- if true check for each found document if context's user has "view" rights for it.nb
- the number of rows to return. If 0 then all rows are returned.start
- the number of rows to skip. If 0 don't skip any row.parameterValues
- the where clause values that replace the question marks (?).inputxcontext
- the XWiki context required for getting information about the execution context.- Returns:
- a list of XWikiDocument.
- Throws:
XWikiException
- in case of error while performing the query.
-
createSQLQuery
protected String createSQLQuery(String queryPrefix, String whereSQL)
- Parameters:
queryPrefix
- the start of the SQL query (for example "select distinct doc.space, doc.name")whereSQL
- the where clause to append- Returns:
- the full formed SQL query, to which the order by columns have been added as returned columns (this is required for example for HSQLDB).
-
getColumnsForSelectStatement
protected String getColumnsForSelectStatement(String whereSQL)
- Parameters:
whereSQL
- the SQL where clause- Returns:
- the list of columns to return in the select clause as a string starting with ", " if there are columns or an empty string otherwise. The returned columns are extracted from the where clause. One reason for doing so is because HSQLDB only support SELECT DISTINCT SQL statements where the columns operated on are returned from the query.
-
isCustomMappingValid
@Deprecated public boolean isCustomMappingValid(BaseClass bclass, String custommapping1, XWikiContext context)
Deprecated.- Specified by:
isCustomMappingValid
in interfaceXWikiStoreInterface
-
isCustomMappingValid
public boolean isCustomMappingValid(BaseClass bclass, String custommapping1)
- Specified by:
isCustomMappingValid
in interfaceXWikiStoreInterface
-
injectCustomMappings
public void injectCustomMappings(XWikiContext context) throws XWikiException
- Specified by:
injectCustomMappings
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
injectUpdatedCustomMappings
public void injectUpdatedCustomMappings(XWikiContext context) throws XWikiException
- Specified by:
injectUpdatedCustomMappings
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
injectCustomMappingsInSessionFactory
public org.hibernate.SessionFactory injectCustomMappingsInSessionFactory(BaseClass bclass, XWikiContext context) throws XWikiException
- Throws:
XWikiException
-
injectCustomMappingsInSessionFactory
public org.hibernate.SessionFactory injectCustomMappingsInSessionFactory(XWikiContext inputxcontext) throws XWikiException
- Throws:
XWikiException
-
injectCustomMappings
public boolean injectCustomMappings(XWikiDocument doc, XWikiContext inputxcontext) throws XWikiException
- Specified by:
injectCustomMappings
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
injectCustomMapping
public boolean injectCustomMapping(String className, String customMapping, XWikiContext inputxcontext) throws XWikiException
- Parameters:
className
- the name of the class to mapcustomMapping
- the custom mapping to inject for this classinputxcontext
- the current XWikiContext- Returns:
- a boolean indicating if the mapping has been added to the current hibernate configuration, and a reload of the factory is required.
- Throws:
XWikiException
- if an error occurs- Since:
- 4.0M1
-
injectCustomMapping
public boolean injectCustomMapping(BaseClass doc1class, XWikiContext inputxcontext) throws XWikiException
- Specified by:
injectCustomMapping
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
injectCustomMapping
public boolean injectCustomMapping(BaseClass doc1class) throws XWikiException
- Specified by:
injectCustomMapping
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
getCustomMappingPropertyList
public List<String> getCustomMappingPropertyList(BaseClass bclass)
- Specified by:
getCustomMappingPropertyList
in interfaceXWikiStoreInterface
-
searchDocuments
public List<XWikiDocument> searchDocuments(String wheresql, XWikiContext context) throws XWikiException
Description copied from interface:XWikiStoreInterface
Search documents in the storing system.- Specified by:
searchDocuments
in interfaceXWikiStoreInterface
- Parameters:
wheresql
- the HQL where clause. For example:where doc.fullName <> ?1 and (doc.parent = ?2 or (doc.parent = ?3 and doc.space = ?4))
context
- the XWiki context required for getting information about the execution context.- Returns:
- a list of XWikiDocument.
- Throws:
XWikiException
- in case of error while performing the query.
-
searchDocuments
public List<XWikiDocument> searchDocuments(String wheresql, List<?> parameterValues, XWikiContext context) throws XWikiException
Description copied from interface:XWikiStoreInterface
Search documents in the storing system.Search documents by passing HQL where clause values as parameters. This allows generating a Named HQL query which will automatically encode the passed values (like escaping single quotes). This API is recommended to be used over the other similar methods where the values are passed inside the where clause and for which you'll need to do the encoding/escpaing yourself before calling them.
- Specified by:
searchDocuments
in interfaceXWikiStoreInterface
- Parameters:
wheresql
- the HQL where clause. For example:where doc.fullName <> ?1 and (doc.parent = ?2 or (doc.parent = ?3 and doc.space = ?4))
parameterValues
- the where clause values that replace the question marks (?).context
- the XWiki context required for getting information about the execution context.- Returns:
- a list of XWikiDocument.
- Throws:
XWikiException
- in case of error while performing the query.
-
searchDocuments
public List<XWikiDocument> searchDocuments(String wheresql, boolean distinctbylanguage, XWikiContext context) throws XWikiException
Description copied from interface:XWikiStoreInterface
Search documents in the storing system.- Specified by:
searchDocuments
in interfaceXWikiStoreInterface
- Parameters:
wheresql
- the HQL where clause. For example:where doc.fullName <> ?1 and (doc.parent = ?2 or (doc.parent = ?3 and doc.space = ?4))
distinctbylanguage
- when a document has multiple version for each language it is returned as one document a language.context
- the XWiki context required for getting information about the execution context.- Returns:
- a list of XWikiDocument.
- Throws:
XWikiException
- in case of error while performing the query.
-
searchDocuments
public List<XWikiDocument> searchDocuments(String wheresql, boolean distinctbylanguage, boolean customMapping, XWikiContext context) throws XWikiException
Description copied from interface:XWikiStoreInterface
Search documents in the storing system.- Specified by:
searchDocuments
in interfaceXWikiStoreInterface
- Parameters:
wheresql
- the HQL where clause. For example:where doc.fullName <> ?1 and (doc.parent = ?2 or (doc.parent = ?3 and doc.space = ?4))
distinctbylanguage
- when a document has multiple version for each language it is returned as one document a language.customMapping
- inject custom mapping in session.context
- the XWiki context required for getting information about the execution context.- Returns:
- a list of XWikiDocument.
- Throws:
XWikiException
- in case of error while performing the query.
-
searchDocuments
public List<XWikiDocument> searchDocuments(String wheresql, int nb, int start, XWikiContext context) throws XWikiException
Description copied from interface:XWikiStoreInterface
Search documents in the storing system.- Specified by:
searchDocuments
in interfaceXWikiStoreInterface
- Parameters:
wheresql
- the HQL where clause. For example:where doc.fullName <> ?1 and (doc.parent = ?2 or (doc.parent = ?3 and doc.space = ?4))
nb
- the number of rows to return. If 0 then all rows are returned.start
- the number of rows to skip. If 0 don't skip any row.context
- the XWiki context required for getting information about the execution context.- Returns:
- a list of XWikiDocument.
- Throws:
XWikiException
- in case of error while performing the query.
-
searchDocuments
public List<XWikiDocument> searchDocuments(String wheresql, int nb, int start, List<?> parameterValues, XWikiContext context) throws XWikiException
Description copied from interface:XWikiStoreInterface
Search documents in the storing system.Search documents by passing HQL where clause values as parameters. This allows generating a Named HQL query which will automatically encode the passed values (like escaping single quotes). This API is recommended to be used over the other similar methods where the values are passed inside the where clause and for which you'll need to do the encoding/escpaing yourself before calling them.
- Specified by:
searchDocuments
in interfaceXWikiStoreInterface
- Parameters:
wheresql
- the HQL where clause. For example:where doc.fullName <> ?1 and (doc.parent = ?2 or (doc.parent = ?3 and doc.space = ?4))
nb
- the number of rows to return. If 0 then all rows are returned.start
- the number of rows to skip. If 0 don't skip any row.parameterValues
- the where clause values that replace the question marks (?).context
- the XWiki context required for getting information about the execution context.- Returns:
- a list of XWikiDocument.
- Throws:
XWikiException
- in case of error while performing the query.
-
searchDocuments
public List<XWikiDocument> searchDocuments(String wheresql, boolean distinctbylanguage, int nb, int start, List<?> parameterValues, XWikiContext context) throws XWikiException
Description copied from interface:XWikiStoreInterface
Search documents in the storing system.- Specified by:
searchDocuments
in interfaceXWikiStoreInterface
- Parameters:
wheresql
- the HQL where clause. For example:where doc.fullName <> ?1 and (doc.parent = ?2 or (doc.parent = ?3 and doc.space = ?4))
distinctbylanguage
- when a document has multiple version for each language it is returned as one document a language.nb
- the number of rows to return. If 0 then all rows are returned.start
- the number of rows to skip. If 0 don't skip any row.parameterValues
- the where clause values that replace the question marks (?).context
- the XWiki context required for getting information about the execution context.- Returns:
- a list of XWikiDocument.
- Throws:
XWikiException
- in case of error while performing the query.
-
searchDocuments
public List<XWikiDocument> searchDocuments(String wheresql, boolean distinctbylanguage, int nb, int start, XWikiContext context) throws XWikiException
Description copied from interface:XWikiStoreInterface
Search documents in the storing system.- Specified by:
searchDocuments
in interfaceXWikiStoreInterface
- Parameters:
wheresql
- the HQL where clause. For example:where doc.fullName <> ?1 and (doc.parent = ?2 or (doc.parent = ?3 and doc.space = ?4))
distinctbylanguage
- when a document has multiple version for each language it is returned as one document a language.nb
- the number of rows to return. If 0 then all rows are returned.start
- the number of rows to skip. If 0 don't skip any row.context
- the XWiki context required for getting information about the execution context.- Returns:
- a list of XWikiDocument.
- Throws:
XWikiException
- in case of error while performing the query.
-
searchDocuments
public List<XWikiDocument> searchDocuments(String wheresql, boolean distinctbylanguage, boolean customMapping, int nb, int start, XWikiContext context) throws XWikiException
Description copied from interface:XWikiStoreInterface
Search documents in the storing system.- Specified by:
searchDocuments
in interfaceXWikiStoreInterface
- Parameters:
wheresql
- the HQL where clause. For example:where doc.fullName <> ?1 and (doc.parent = ?2 or (doc.parent = ?3 and doc.space = ?4))
distinctbylanguage
- when a document has multiple version for each language it is returned as one document a language.customMapping
- inject custom mapping in session.nb
- the number of rows to return. If 0 then all rows are returned.start
- the number of rows to skip. If 0 don't skip any row.context
- the XWiki context required for getting information about the execution context.- Returns:
- a list of XWikiDocument.
- Throws:
XWikiException
- in case of error while performing the query.
-
searchDocuments
public List<XWikiDocument> searchDocuments(String wheresql, boolean distinctbylanguage, boolean customMapping, int nb, int start, List<?> parameterValues, XWikiContext context) throws XWikiException
Description copied from interface:XWikiStoreInterface
Search documents in the storing system.Search documents by passing HQL where clause values as parameters. This allows generating a Named HQL query which will automatically encode the passed values (like escaping single quotes). This API is recommended to be used over the other similar methods where the values are passed inside the where clause and for which you'll need to do the encoding/escpaing yourself before calling them.
- Specified by:
searchDocuments
in interfaceXWikiStoreInterface
- Parameters:
wheresql
- the HQL where clause. For example:where doc.fullName <> ?1 and (doc.parent = ?2 or (doc.parent = ?3 and doc.space = ?4))
distinctbylanguage
- when a document has multiple version for each language it is returned as one document a language.customMapping
- inject custom mapping in session.nb
- the number of rows to return. If 0 then all rows are returned.start
- the number of rows to skip. If 0 don't skip any row.parameterValues
- the where clause values that replace the question marks (?).context
- the XWiki context required for getting information about the execution context.- Returns:
- a list of XWikiDocument.
- Throws:
XWikiException
- in case of error while performing the query.
-
getTranslationList
public List<String> getTranslationList(XWikiDocument doc, XWikiContext context) throws XWikiException
- Specified by:
getTranslationList
in interfaceXWikiStoreInterface
- Throws:
XWikiException
-
getQueryManager
public QueryManager getQueryManager()
- Specified by:
getQueryManager
in interfaceXWikiStoreInterface
- Returns:
- QueryManager used for creating queries to store. Use QueryManager instead of #search* methods because it is more abstract from store implementation and support multiple query languages.
-
getLimitSize
public int getLimitSize(XWikiContext context, Class<?> entityType, String propertyName)
Description copied from interface:XWikiStoreInterface
Get the limit size of a property.- Specified by:
getLimitSize
in interfaceXWikiStoreInterface
- Parameters:
context
- the context of the wiki to retrieve the propertyentityType
- the entityType where the property is located.propertyName
- the property on which we want the limit size.- Returns:
- an integer representing the limit size.
-
-