com.jalios.jcms.db
Class HibernateUtil

java.lang.Object
  extended by com.jalios.jcms.db.HibernateUtil
All Implemented Interfaces:
DBConstants

public class HibernateUtil
extends Object
implements DBConstants

Helper class providing static methods to perform common database operation using hibertnate

Since:
jcms-6.0
Version:
$Revision$

Field Summary
static String REVISION
           
 
Fields inherited from interface com.jalios.jcms.db.DBConstants
AUTHOR_ID_FIELD, CDATE_FIELD, CHANNEL_JCMSDB_PROP, DBDATA_URID, HIBERNATE_MAPPING_ADATE, HIBERNATE_MAPPING_AUTHOR, HIBERNATE_MAPPING_CDATE, HIBERNATE_MAPPING_EDATE, HIBERNATE_MAPPING_MDATE, HIBERNATE_MAPPING_PDATE, HIBERNATE_MAPPING_PSTATUS, HIBERNATE_MAPPING_TITLE, HIBERNATE_MAPPING_WORKSPACE_ID, MDATE_FIELD, ROW_ID_FIELD
 
Constructor Summary
HibernateUtil()
           
 
Method Summary
static void beginTransaction()
          Begins a new transaction in the session of the current thread.
static org.hibernate.criterion.Criterion buildAndCriterion(org.hibernate.criterion.Criterion c1, org.hibernate.criterion.Criterion c2)
          Returns the AND of the two criterion.
static String buildJcmsId(Class<?> clazz, Long rowId)
          Generates the internal JCMS id for the given database object.
static org.hibernate.criterion.Criterion buildOrCriterion(org.hibernate.criterion.Criterion c1, org.hibernate.criterion.Criterion c2)
          Returns the OR of the two criterion.
static void clearCache()
           
static void closeSession()
          Close the hibernate session of the current thread.
static void commitTransaction()
          Commits the transaction of the current thread if it exists.
static void delete(DBData data)
          Deletes the specified object in the database.
static void delete(String id)
          Deletes the specified object in the database.
static int deleteQuery(Class<?> clazz, String property, String value)
          Delete all object matching the specified parameters.
static void evict(Object obj)
          Removes this instance from the Hibernate session cache to avoid automatic persistence by dirty checking.
static List execQuery(org.hibernate.Query query)
          Execute the specified hibernate query using the current thread's session.
static List execQuery(String hql)
          Execute the specified hibernate query using the current thread's session.
static List execQuery(String hql, int firstResult, int maxResults)
          Execute the specified hibernate query using the current thread's session.
static Iterator execQueryIterator(org.hibernate.Query query)
          Execute the specified hibernate query using the current thread's session.
static Iterator execQueryIterator(String hql)
          Execute the specified hibernate query using the current thread's session.
static Object execQueryUnique(String hql)
          Execute the specified hibernate query using the current thread's session.
static int execUpdate(org.hibernate.Query query)
          Execute the update or delete query.
static int execUpdate(String hql)
          Execute the update or delete HQL statement.
static Data getData(String id)
          Retrieves the Data bound to the specified jcms id from the database.
static DBData getDBData(String id)
          Retrieves the DBData bound to the specified jcms id from the database.
static
<T> Iterator<T>
getDBDataIterator(Class<T> clazz)
          Retrieve all Objects of the specified class from the database.
static
<T> List<T>
getDBDataList(Class<T> clazz)
          Retrieve all Objects of the specified class from the database (limited to maxResults).
static
<T> List<T>
getDBDataList(Class<T> clazz, int firstResult, int maxResults)
          Retrieve all Objects of the specified class from the database.
static Object getObject(Class clazz, Long rowId)
          Retrieves the Object of the specified class and using the specified id.
static org.hibernate.Session getSession()
          Retrieve and open an hibernate session for the current thread
static org.hibernate.SessionFactory getSessionFactory()
          Retrieve the Hibernate SessionFactory singleton
static boolean isDBDataJcmsId(String id)
           
static
<T> List<T>
query(Class<? extends T> clazz, Map<String,Object> paramsMap)
          Retrieves all object matching the specified parameters.
static
<T> List<T>
query(Class<? extends T> clazz, Map<String,Object> paramsMap, String orderBy)
          Retrieves all object matching the specified parameters.
static
<T> List<T>
query(Class<? extends T> clazz, Map<String,Object> paramsMap, String orderBy, int firstResult, int maxResults)
          Retrieves all object matching the specified parameters.
static
<T> List<T>
query(Class<? extends T> clazz, String orderBy)
          Retrieves all object of the specified Class.
static
<T> List<T>
query(Class<? extends T> clazz, String[] properties, Object[] values)
          Retrieves all object matching the specified parameters.
static
<T> List<T>
query(Class<? extends T> clazz, String[] properties, Object[] values, String orderBy)
          Retrieves all object matching the specified parameters.
static
<T> List<T>
query(Class<? extends T> clazz, String property, Object value)
          Retrieves all object matching the specified parameters.
static
<T> List<T>
query(Class<? extends T> clazz, String property, Object value, String orderBy)
          Retrieves all object matching the specified parameters.
static
<T> List<T>
query(Class<T> clazz)
          Retrieves all object of the specified Class.
static int queryCount(Class<?> clazz)
          Returns the count of objects matching the given class.
static int queryCount(Class<?> clazz, org.hibernate.criterion.Criterion criterion)
          Returns the count of objects matching the given class with the given criterion.
static int queryCount(Class<?> clazz, String[] properties, Object[] values)
          Returns the count of objects matching the given class with the given criteria.
static int queryCount(Class<?> clazz, String property, Object value)
          Returns the count of objects matching the given class with the given criteria.
static PageResult<Publication> queryPublication(PublicationCriteria pubCriteria)
          Returns a list of publications in the database matching the given criteria.
static
<T> T
queryUnique(Class<? extends T> clazz, String[] properties, Object[] values)
          Retrieves a unique object matching the specified parameters.
static
<T> T
queryUnique(Class<? extends T> clazz, String[] properties, Object[] values, String orderBy)
          Retrieves a unique object matching the specified parameters.
static
<T> T
queryUnique(Class<? extends T> clazz, String property, Object value)
          Retrieves a unique object matching the specified parameters.
static void rollbackTransaction()
          Rollback the transaction of the current thread if it exists.
static void save(Data data)
          Saves or updates the specified Data in the database.
static void save(Object obj)
          Saves or updates the specified Object in the database.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

REVISION

public static final String REVISION
See Also:
Constant Field Values
Constructor Detail

HibernateUtil

public HibernateUtil()
Method Detail

getSessionFactory

public static org.hibernate.SessionFactory getSessionFactory()
Retrieve the Hibernate SessionFactory singleton

Returns:
the SessionFactory singleton
Since:
jcms-6.0

getSession

public static org.hibernate.Session getSession()
Retrieve and open an hibernate session for the current thread

Returns:
an opened Session ready to be used for hibernate transaction
Since:
jcms-6.0

closeSession

public static void closeSession()
Close the hibernate session of the current thread.

Since:
jcms-6.0

beginTransaction

public static void beginTransaction()
Begins a new transaction in the session of the current thread.

Since:
jcms-6.0

commitTransaction

public static void commitTransaction()
Commits the transaction of the current thread if it exists.

Since:
jcms-6.0

rollbackTransaction

public static void rollbackTransaction()
Rollback the transaction of the current thread if it exists.

Since:
jcms-6.0

buildJcmsId

public static String buildJcmsId(Class<?> clazz,
                                 Long rowId)
Generates the internal JCMS id for the given database object.

Parameters:
clazz - the Class of the object (required)
rowId - the row id in the database table (required)
Returns:
the internal JCMS id for the given database object.
Throws:
IllegalArgumentException - if clazz or rowId is null
Since:
jcms-6.0.0

isDBDataJcmsId

public static boolean isDBDataJcmsId(String id)

execQueryUnique

public static Object execQueryUnique(String hql)
Execute the specified hibernate query using the current thread's session.

Return the unique query result. If the query contains multiple results per row, the results are returned in an instance of Object[].

Parameters:
hql - the query as a string using the hibernate query language
Returns:
the result or null if it could not be found (or if an error occured)
Since:
jcms-6.0

execQuery

public static List execQuery(String hql)
Execute the specified hibernate query using the current thread's session.

Return the query results as a List. If the query contains multiple results per row, the results are returned in an instance of Object[].

Parameters:
hql - the query as a string using the hibernate query language
Returns:
the result list (never return null)
Since:
jcms-6.0

execQuery

public static List execQuery(String hql,
                             int firstResult,
                             int maxResults)
Execute the specified hibernate query using the current thread's session.

Return the query results as a List. If the query contains multiple results per row, the results are returned in an instance of Object[].

Parameters:
hql - the query as a string using the hibernate query language
firstResult - set the first data to retrieve. If <= 0, rows will be retrieved beginnning from first data (does not work with query on super classes).
maxResults - set the maximum number of data to retrieve. If < 0, there is no limit to the number of data retrieved (does not work with query on super classes).
Returns:
the result list (never return null)
Since:
jcms-6.0

execQuery

public static List execQuery(org.hibernate.Query query)
Execute the specified hibernate query using the current thread's session.

Return the query results as a List. If the query contains multiple results per row, the results are returned in an instance of Object[].

Parameters:
query - the hibernate query
Returns:
the result list (never return null)
Since:
jcms-6.0

execQueryIterator

public static Iterator execQueryIterator(String hql)
Execute the specified hibernate query using the current thread's session.

Return the query results as an Iterator. If the query contains multiple results pre row, the results are returned in an instance of Object[].
Entities returned as results are initialized on demand. The first SQL query returns identifiers only.

Parameters:
hql - the query as a string using the hibernate query language
Returns:
the result iterator (never return null)
Since:
jcms-6.0

execQueryIterator

public static Iterator execQueryIterator(org.hibernate.Query query)
Execute the specified hibernate query using the current thread's session.

Return the query results as an Iterator. If the query contains multiple results pre row, the results are returned in an instance of Object[].
Entities returned as results are initialized on demand. The first SQL query returns identifiers only.

Parameters:
query - the hibernate query
Returns:
the result iterator
Since:
jcms-6.0

execUpdate

public static int execUpdate(String hql)
Execute the update or delete HQL statement.

Parameters:
hql - the query as a string using the hibernate query language
Returns:
the number of entities updated or deleted.
Since:
jcms-6.0

execUpdate

public static int execUpdate(org.hibernate.Query query)
Execute the update or delete query.

Parameters:
query - the Hibernate query
Returns:
the number of entities updated or deleted.
Since:
jcms-6.0

query

public static <T> List<T> query(Class<T> clazz)
Retrieves all object of the specified Class.

Example to retrieve all ArchivedPublication.

   HibernateUtil.query(ArchivedPublication.class);
 
Results will be sorted by cdate if the Class is a subclass of Data, otherwise, results are not sorted.

Parameters:
clazz - the Class of object to retrieve, required must not be null
Returns:
a list of all object found in the database (never return null)
Throws:
IllegalArgumentException - if clazz is null
Since:
jcms-6.0

query

public static <T> List<T> query(Class<? extends T> clazz,
                                String orderBy)
Retrieves all object of the specified Class.

Example to retrieve all ArchivedPublication order by rowId.

   HibernateUtil.query(ArchivedPublication.class, "rowId");
 

Parameters:
clazz - the Class of object to retrieve, required must not be null
orderBy - the field name to use to order the results. You can append "asc" or "desc" to indicate the order direction. Default is ascending.
Returns:
a list of all object found in the database (never return null)
Throws:
IllegalArgumentException - if clazz is null
Since:
jcms-6.0

query

public static <T> List<T> query(Class<? extends T> clazz,
                                String property,
                                Object value)
Retrieves all object matching the specified parameters.

Example to retrieve all ReaderTracker of a publication

   HibernateUtil.query(ReaderTracker.class, "publicationId", pub.getId());
 
Results will be sorted by cdate if the Class is a subclass of Data, otherwise, results are not sorted.

Parameters:
clazz - the Class of object to retrieve, required must not be null
property - a field name. All results are return if null.
value - the value of the field to match. All results are return if null.
Returns:
a list of all object found in the database (never return null)
Throws:
IllegalArgumentException - if clazz is null
Since:
jcms-6.0

query

public static <T> List<T> query(Class<? extends T> clazz,
                                String property,
                                Object value,
                                String orderBy)
Retrieves all object matching the specified parameters.

Example to retrieve all ExtraDBData of a member, order by extradbdata name

   HibernateUtil.query(ExtraDBData.class, "dataId", mbr.getId(), "extraName");
 

Parameters:
clazz - the Class of object to retrieve, required must not be null
property - a field name. All results are return if null.
value - the value of the field to match. All results are return if null.
orderBy - the field name to use to order the results. You can append "asc" or "desc" to indicate the order direction. Default is ascending.
Returns:
a list of all object found in the database (never return null)
Throws:
IllegalArgumentException - if clazz is null
Since:
jcms-6.0

query

public static <T> List<T> query(Class<? extends T> clazz,
                                String[] properties,
                                Object[] values)
Retrieves all object matching the specified parameters.

Example to retrieve ReaderTracker of a publication for a specific member.

   String[] properties = new String[] {"publicationId", "authorId"};
   String[] values = new String[] {pub.getId(), mbr.getId()};
   HibernateUtil.query(ReaderTracker.class, properties, values);
 
Results will be sorted by cdate if the Class is a subclass of Data, otherwise, results are not sorted

Parameters:
clazz - the Class of object to retrieve, required must not be null
properties - an array of fields name. All results are return if null or empty.
values - an array of values to match, must be the same size as properties. All results are return if null or empty.
Returns:
a list of all object found in the database (never return null)
Throws:
IllegalArgumentException - if clazz is null or if propreties and values are not of the same length
Since:
jcms-6.0

query

public static <T> List<T> query(Class<? extends T> clazz,
                                String[] properties,
                                Object[] values,
                                String orderBy)
Retrieves all object matching the specified parameters.

Parameters:
clazz - the Class of object to retrieve, required must not be null
properties - an array of fields name. All results are return if null or empty.
values - an array of values to match, must be the same size as properties. All results are return if null or empty.
orderBy - the field name to use to order the results. You can append "asc" or "desc" to indicate the order direction. Default is ascending.
Returns:
a list of all object found in the database
Throws:
IllegalArgumentException - if clazz is null or if propreties and values are not of the same length
Since:
jcms-6.0

queryUnique

public static <T> T queryUnique(Class<? extends T> clazz,
                                String property,
                                Object value)
Retrieves a unique object matching the specified parameters.

Parameters:
clazz - the Class of object to retrieve, required
property - a field name. All results are return if null.
value - the value of the field to match. All results are return if null.
Returns:
the object found in the database
Throws:
IllegalArgumentException - if clazz is null
Since:
jcms-6.0

queryUnique

public static <T> T queryUnique(Class<? extends T> clazz,
                                String[] properties,
                                Object[] values)
Retrieves a unique object matching the specified parameters.

Parameters:
clazz - the Class of object to retrieve, required
properties - an array of fields name. All results are return if null or empty.
values - an array of values to match, must be the same size as properties. All results are return if null or empty.
Returns:
the object found in the database
Throws:
IllegalArgumentException - if clazz is null or if propreties and values are not of the same length
Since:
jcms-6.0

queryUnique

public static <T> T queryUnique(Class<? extends T> clazz,
                                String[] properties,
                                Object[] values,
                                String orderBy)
Retrieves a unique object matching the specified parameters.

Parameters:
clazz - the Class of object to retrieve, required
properties - an array of fields name. All results are return if null or empty.
values - an array of values to match, must be the same size as properties. All results are return if null or empty.
orderBy - the field name to use to order the results. You can append "asc" or "desc" to indicate the order direction. Default is ascending.
Returns:
the object found in the database
Throws:
IllegalArgumentException - if clazz is null or if propreties and values are not of the same length
Since:
jcms-6.0

query

public static <T> List<T> query(Class<? extends T> clazz,
                                Map<String,Object> paramsMap)
Retrieves all object matching the specified parameters.

Example to retrieve ReaderTracker of a publication for a specific member.

   Map<String,String> paramsMap = new HashMap<String,String>();
   paramsMap.put("publicationId", pub.getId());
   paramsMap.put("authorId", mbr.getId());
   HibernateUtil.query(ReaderTracker.class, paramsMap);
 
Results will be sorted by cdate if the Class is a subclass of Data, otherwise, results are not sorted

Parameters:
clazz - the Class of object to retrieve, required
paramsMap - a map of fields name and field value (if null or empty, no refinement is performed)
Returns:
a list of all object found in the database (never return null)
Since:
jcms-6.0

query

public static <T> List<T> query(Class<? extends T> clazz,
                                Map<String,Object> paramsMap,
                                String orderBy)
Retrieves all object matching the specified parameters.

Parameters:
clazz - the Class of object to retrieve, required must not be null
paramsMap - a map of fields name and field value (if null or empty, no refinement is performed)
orderBy - the field name to use to order the results. You can append "asc" or "desc" to indicate the order direction. Default is ascending.
Returns:
a list of all object found in the database (never return null)
Throws:
IllegalArgumentException - if clazz is null
Since:
jcms-6.0

query

public static <T> List<T> query(Class<? extends T> clazz,
                                Map<String,Object> paramsMap,
                                String orderBy,
                                int firstResult,
                                int maxResults)
Retrieves all object matching the specified parameters.

Parameters:
clazz - the Class of object to retrieve, required must not be null
paramsMap - a map of fields name and field value (if null or empty, no refinement is performed)
orderBy - the field name to use to order the results. You can append "asc" or "desc" to indicate the order direction. Default is ascending.
firstResult - set the first data to retrieve. If <= 0, rows will be retrieved beginnning from first data (does not work with query on super classes).
maxResults - set the maximum number of data to retrieve. If < 0, there is no limit to the number of data retrieved (does not work with query on super classes).
Returns:
a list of all object found in the database (never return null)
Throws:
IllegalArgumentException - if clazz is null
Since:
jcms-6.0

deleteQuery

public static int deleteQuery(Class<?> clazz,
                              String property,
                              String value)
Delete all object matching the specified parameters.

Example to delete all ReaderTracker of a publication

   HibernateUtil.deleteQuery(ReaderTracker.class, "publicationId", pub.getId());
 

Parameters:
clazz - the Class of object to retrieve and delete, required
property - a field name, required
value - the value of the field to match, required
Returns:
the number of objects deleted.
Since:
jcms-6.0

getDBDataList

public static <T> List<T> getDBDataList(Class<T> clazz)
Retrieve all Objects of the specified class from the database (limited to maxResults).

Type Parameters:
T - any DB type
Parameters:
clazz - the Class of object to retrieve, required
Returns:
a list of all object found in the database (never return null)
Since:
jcms-6.0

getDBDataList

public static <T> List<T> getDBDataList(Class<T> clazz,
                                        int firstResult,
                                        int maxResults)
Retrieve all Objects of the specified class from the database.

Type Parameters:
T - any DB type
Parameters:
clazz - the Class of object to retrieve, required
firstResult - set the first data to retrieve. If <= 0, rows will be retrieved beginnning from first data (does not work with query on super classes).
maxResults - set the maximum number of data to retrieve. If < 0, there is no limit to the number of data retrieved (does not work with query on super classes).
Returns:
a list of all object found in the database (never return null)
Since:
jcms-6.0

getDBDataIterator

public static <T> Iterator<T> getDBDataIterator(Class<T> clazz)
Retrieve all Objects of the specified class from the database.

Type Parameters:
T - any DB type
Parameters:
clazz - the Class of object to retrieve, required
Returns:
the result iterator
Since:
jcms-6.0

queryCount

public static int queryCount(Class<?> clazz)
Returns the count of objects matching the given class.

Parameters:
clazz - the class
Returns:
the count of objects matching the given class.
Since:
jcms-6.0.0

queryCount

public static int queryCount(Class<?> clazz,
                             String property,
                             Object value)
Returns the count of objects matching the given class with the given criteria.

Parameters:
clazz - the class
property - a field name.
value - the value of the field to match. All results are return if null.
Returns:
the count of objects matching the given class with the given criteria.
Since:
jcms-6.0.0

queryCount

public static int queryCount(Class<?> clazz,
                             String[] properties,
                             Object[] values)
Returns the count of objects matching the given class with the given criteria.

Parameters:
clazz - the class
properties - an array of field name.
values - an array of values of the field to match.
Returns:
the count of objects matching the given class with the given criteria.
Since:
jcms-6.0.0

queryCount

public static int queryCount(Class<?> clazz,
                             org.hibernate.criterion.Criterion criterion)
Returns the count of objects matching the given class with the given criterion.

Parameters:
clazz - the class
criterion - the criterion
Returns:
the count of objects matching the given class with the given criterion.
Since:
jcms-6.0.0

queryPublication

public static PageResult<Publication> queryPublication(PublicationCriteria pubCriteria)
Returns a list of publications in the database matching the given criteria.

Parameters:
pubCriteria - the PublicationCriteria (required, must not be null)
Returns:
a list of publications, never return null.
Throws:
IllegalArgumentException - if pubCriteria is null
Since:
jcms-6.0.0

buildAndCriterion

public static org.hibernate.criterion.Criterion buildAndCriterion(org.hibernate.criterion.Criterion c1,
                                                                  org.hibernate.criterion.Criterion c2)
Returns the AND of the two criterion. Check if criterion are null.

Parameters:
c1 - a criterion
c2 - a criterion
Returns:
the AND of the two criterion. Check if criterion are null.
Since:
jcms-6.0.0

buildOrCriterion

public static org.hibernate.criterion.Criterion buildOrCriterion(org.hibernate.criterion.Criterion c1,
                                                                 org.hibernate.criterion.Criterion c2)
Returns the OR of the two criterion. Check if criterion are null.

Parameters:
c1 - a criterion
c2 - a criterion
Returns:
the OR of the two criterion. Check if criterion are null.
Since:
jcms-6.0.0

getObject

public static Object getObject(Class clazz,
                               Long rowId)
Retrieves the Object of the specified class and using the specified id.

Parameters:
clazz - the Class (or super class in case of inheritance) of the object to retrieve
rowId - the primary key value of the object or if could not be found, the value of the "id" column
Returns:
the Object found in the database or null if no object matched the query.
Since:
jcms-6.0

getDBData

public static DBData getDBData(String id)
Retrieves the DBData bound to the specified jcms id from the database.

Parameters:
id - the JCMS id of this data (e.g. 1234_WFNOTE)
Returns:
the DBData found in the database or null if no object matched the query.
Since:
jcms-6.0

getData

public static Data getData(String id)
Retrieves the Data bound to the specified jcms id from the database.

Parameters:
id - the JCMS id of this data (e.g. 1234_WFNOTE)
Returns:
the Data found in the database or null if no object matched the query.
Since:
jcms-6.0.0

save

public static void save(Data data)
Saves or updates the specified Data in the database.

Parameters:
data - the Data to be saved or updated
Since:
jcms-6.0

save

public static void save(Object obj)
Saves or updates the specified Object in the database.

Parameters:
obj - the object to be saved or updated
Since:
jcms-6.0

evict

public static void evict(Object obj)
Removes this instance from the Hibernate session cache to avoid automatic persistence by dirty checking.

Parameters:
obj -
Since:
jcms-6.0.0
See Also:
Session.evict(Object)

delete

public static void delete(DBData data)
Deletes the specified object in the database.

Parameters:
data - the data to be deleted
Since:
jcms-6.0

delete

public static void delete(String id)
Deletes the specified object in the database.

Parameters:
id - the identifier of the DBData to be deleted
Since:
jcms-6.0

clearCache

public static void clearCache()


Copyright © 2001-2007 Jalios SA. All Rights Reserved.