org.ow2.dragon.persistence.dao
Class GenericHibernateDAOImpl<T,PK extends java.io.Serializable>

java.lang.Object
  extended by org.springframework.dao.support.DaoSupport
      extended by org.springframework.orm.hibernate3.support.HibernateDaoSupport
          extended by org.ow2.dragon.persistence.dao.GenericHibernateDAOImpl<T,PK>
Type Parameters:
T - a type variable
PK - the primary key for that type
All Implemented Interfaces:
GenericORMDAO<T,PK>, org.springframework.beans.factory.InitializingBean
Direct Known Subclasses:
BindingDAOImpl, BindingOperationDAOImpl, CategoryDAOImpl, CategoryValueDAOImpl, CommentDAOImpl, EndpointDAOImpl, IdentifierDAOImpl, ManagedAgreementDAOImpl, OrganizationUnitDAOImpl, PartyDAOImpl, PersonDAOImpl, PostDAOImpl, ProtocolDAOImpl, ServiceInterfaceDAOImpl, ServiceSpecificationDAOImpl, SimpleFileDAOImpl, SpecifiedOperationDAOImpl, TechnicalServiceDAOImpl

public class GenericHibernateDAOImpl<T,PK extends java.io.Serializable>
extends org.springframework.orm.hibernate3.support.HibernateDaoSupport
implements GenericORMDAO<T,PK>

This class serves as the Base class for all other DAOs - namely to hold common CRUD methods that they might all use. You should only need to extend this class when your require custom CRUD logic.

To register this class in your Spring context file, use the following XML.

      <bean id="fooDao" class="org.ow2.dragon.persistence.dao.GenericDaoHibernate">
          <property name="type" value="org.ow2.dragon.persistence.bo.Foo"/>
          <property name="sessionFactory" ref="sessionFactory"/>
      </bean>
 

Author:
Bryan Noll, ofabre - eBM WebSourcing

Field Summary
 java.lang.Class<T> type
           
 
Fields inherited from class org.springframework.dao.support.DaoSupport
logger
 
Constructor Summary
GenericHibernateDAOImpl()
           
 
Method Summary
 int count(com.trg.search.IMutableSearch search)
          Returns the total number of results that would be returned using the given ISearch if there were no paging or maxResult limits.
 boolean exists(PK id)
          Checks for existence of an object of type T using the id arg.
 java.util.List<T> findByNamedQuery(java.lang.String queryName, java.util.Map<java.lang.String,java.lang.Object> queryParams)
          Find a list of records by using a named query
 T get(PK id)
          Return the persistent instance of an entity with the given identifier, or null if not found.
 java.util.List<T> getAll()
          Generic method used to get all objects of a particular type.
 java.util.List<T> getAll(java.util.List<PK> ids)
          Retrieve a List of entities matching given ids
 java.util.List<T> getAll(java.util.List<PK> ids, RequestOptions requestOptions)
          Retrieve a List of entities matching given ids, sorted and paginated according to the given request options
 java.util.List<T> getAll(RequestOptions requestOptions)
          Generic method used to get all objects of a particular type, sorted and paginated according to the given request options.
 java.util.List<T> getAllDistinct()
          Gets all records without duplicates.
 java.lang.Class<T> getManipulatedType()
          Return the type of entity manipulated by this DAO
 void remove(PK id)
          Generic method to delete an object based on class and id
 void remove(T object)
          Generic method to delete an object
 T save(T object)
          Generic method to save an object - handles both update and insert.
 java.util.List<T> search(com.trg.search.IMutableSearch search)
          Search for objects based on the search parameters in the specified ISearch object.
 com.trg.search.SearchResult<T> searchAndCount(com.trg.search.IMutableSearch search)
          Returns a SearchResult object that includes the list of results like search() and the total length like searchLength.
 java.util.List<T> searchEquals(java.lang.String[] criteria, java.lang.String[] properties, RequestOptions requestOptions)
          This method allows to search Objects on String properties, fitting search criteria.
 java.util.List<T> searchLike(java.lang.String[] criteria, java.lang.String[] properties, RequestOptions requestOptions)
          This method allows to search Objects on String properties, fitting search criteria.
 T searchUnique(com.trg.search.IMutableSearch search)
          Search for a single result using the given parameters.
 void setType(java.lang.Class<T> type)
           
 
Methods inherited from class org.springframework.orm.hibernate3.support.HibernateDaoSupport
checkDaoConfig, convertHibernateAccessException, createHibernateTemplate, getHibernateTemplate, getSession, getSession, getSessionFactory, releaseSession, setHibernateTemplate, setSessionFactory
 
Methods inherited from class org.springframework.dao.support.DaoSupport
afterPropertiesSet, initDao
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

type

public java.lang.Class<T> type
Constructor Detail

GenericHibernateDAOImpl

public GenericHibernateDAOImpl()
Method Detail

setType

public void setType(java.lang.Class<T> type)

getAll

public java.util.List<T> getAll(RequestOptions requestOptions)
Generic method used to get all objects of a particular type, sorted and paginated according to the given request options. This is the same as lookup up all rows in a table. The sort option works only on single properties, cause colection properties need to be sorted. If you have to sort on collection properties, use search(IMutableSearch search) method with sort and fetching options

Specified by:
getAll in interface GenericORMDAO<T,PK extends java.io.Serializable>
Parameters:
requestOptions - include sort order and pagination information
Returns:
List of populated objects

searchEquals

public java.util.List<T> searchEquals(java.lang.String[] criteria,
                                      java.lang.String[] properties,
                                      RequestOptions requestOptions)
This method allows to search Objects on String properties, fitting search criteria. Properties can be direct object fields or fields of included objects (in this case, fields must be referenced by the doted notation like "foo.bar"). Use a equality statement for each criteria on each property. Results are sorted and paginated in respect of the given request options.

Specified by:
searchEquals in interface GenericORMDAO<T,PK extends java.io.Serializable>
Parameters:
criteria - the search criteria
properties - the searched properties
requestOptions - include sort order and pagination information
Returns:
a list of object matching the different criteria sorted and paginated

searchLike

public java.util.List<T> searchLike(java.lang.String[] criteria,
                                    java.lang.String[] properties,
                                    RequestOptions requestOptions)
This method allows to search Objects on String properties, fitting search criteria. Properties can be direct object fields or fields of included objects (in this case, fields must be referenced by the doted notation like "foo.bar"). Use a like statement for each criteria on each property. Results are sorted and paginated in respect of the given request options.

Specified by:
searchLike in interface GenericORMDAO<T,PK extends java.io.Serializable>
Parameters:
criteria - the search criteria
properties - the searched properties
requestOptions - include sort order and pagination information
Returns:
a list of object matching the different criteria sorted and paginated

getAll

public java.util.List<T> getAll()
Generic method used to get all objects of a particular type. This is the same as lookup up all rows in a table.

Specified by:
getAll in interface GenericORMDAO<T,PK extends java.io.Serializable>
Returns:
List of populated objects

getAll

public java.util.List<T> getAll(java.util.List<PK> ids)
Description copied from interface: GenericORMDAO
Retrieve a List of entities matching given ids

Specified by:
getAll in interface GenericORMDAO<T,PK extends java.io.Serializable>
Parameters:
ids - a List of ids
Returns:
a List of entities matching ids, must be non null, could be empty

getAll

public java.util.List<T> getAll(java.util.List<PK> ids,
                                RequestOptions requestOptions)
Retrieve a List of entities matching given ids, sorted and paginated according to the given request options

Specified by:
getAll in interface GenericORMDAO<T,PK extends java.io.Serializable>
Parameters:
ids - a List of ids
requestOptions - include sort order and pagination information
Returns:
a sorted/paginated List of entities matching ids, must be non null, could be empty

getAllDistinct

public java.util.List<T> getAllDistinct()
Gets all records without duplicates.

Note that if you use this method, it is imperative that your model classes correctly implement the hashcode/equals methods

Specified by:
getAllDistinct in interface GenericORMDAO<T,PK extends java.io.Serializable>
Returns:
List of populated objects

get

public T get(PK id)
Return the persistent instance of an entity with the given identifier, or null if not found.

Specified by:
get in interface GenericORMDAO<T,PK extends java.io.Serializable>
Parameters:
id - the identifier of the persistent instance
Returns:
the persistent instance, or null if not found
See Also:
Session.get(Class, java.io.Serializable)

exists

public boolean exists(PK id)
Checks for existence of an object of type T using the id arg.

Specified by:
exists in interface GenericORMDAO<T,PK extends java.io.Serializable>
Parameters:
id - the id of the entity
Returns:
- true if it exists, false if it doesn't

save

public T save(T object)
Generic method to save an object - handles both update and insert.

Specified by:
save in interface GenericORMDAO<T,PK extends java.io.Serializable>
Parameters:
object - the object to save
Returns:
the persisted object

remove

public void remove(PK id)
Generic method to delete an object based on class and id

Specified by:
remove in interface GenericORMDAO<T,PK extends java.io.Serializable>
Parameters:
id - the identifier (primary key) of the object to remove

remove

public void remove(T object)
Generic method to delete an object

Specified by:
remove in interface GenericORMDAO<T,PK extends java.io.Serializable>
Parameters:
object - the object to remove

findByNamedQuery

public java.util.List<T> findByNamedQuery(java.lang.String queryName,
                                          java.util.Map<java.lang.String,java.lang.Object> queryParams)
Find a list of records by using a named query

Specified by:
findByNamedQuery in interface GenericORMDAO<T,PK extends java.io.Serializable>
Parameters:
queryName - query name of the named query
queryParams - a map of the query names and the values
Returns:
a list of the records found

getManipulatedType

public java.lang.Class<T> getManipulatedType()
Return the type of entity manipulated by this DAO

Specified by:
getManipulatedType in interface GenericORMDAO<T,PK extends java.io.Serializable>
Returns:
the Class of the manipulated entity

search

public java.util.List<T> search(com.trg.search.IMutableSearch search)
Search for objects based on the search parameters in the specified ISearch object.

Specified by:
search in interface GenericORMDAO<T,PK extends java.io.Serializable>
See Also:
ISearch

count

public int count(com.trg.search.IMutableSearch search)
Returns the total number of results that would be returned using the given ISearch if there were no paging or maxResult limits.

Specified by:
count in interface GenericORMDAO<T,PK extends java.io.Serializable>
See Also:
ISearch

searchAndCount

public com.trg.search.SearchResult<T> searchAndCount(com.trg.search.IMutableSearch search)
Returns a SearchResult object that includes the list of results like search() and the total length like searchLength.

Specified by:
searchAndCount in interface GenericORMDAO<T,PK extends java.io.Serializable>
See Also:
ISearch

searchUnique

public T searchUnique(com.trg.search.IMutableSearch search)
               throws org.hibernate.NonUniqueResultException
Search for a single result using the given parameters.

Specified by:
searchUnique in interface GenericORMDAO<T,PK extends java.io.Serializable>
Throws:
org.hibernate.NonUniqueResultException


Copyright © 2008-2009 eBMWebsourcing. All Rights Reserved.