org.appfuse.dao.jpa
Class GenericDaoJpa<T,PK extends java.io.Serializable>

java.lang.Object
  extended by org.appfuse.dao.jpa.GenericDaoJpa<T,PK>
Type Parameters:
T - a type variable
PK - the primary key for that type
All Implemented Interfaces:
GenericDao<T,PK>
Direct Known Subclasses:
RoleDaoJpa, UserDaoJpa

public class GenericDaoJpa<T,PK extends java.io.Serializable>
extends java.lang.Object
implements GenericDao<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.appfuse.dao.hibernate.GenericDaoJpaHibernate">
          <constructor-arg value="org.appfuse.model.Foo"/>
          <property name="sessionFactory" ref="sessionFactory"/>
      </bean>
 

Author:
Bryan Noll

Field Summary
protected  org.apache.commons.logging.Log log
          Log variable for all child classes.
static java.lang.String PERSISTENCE_UNIT_NAME
           
 
Constructor Summary
GenericDaoJpa(java.lang.Class<T> persistentClass)
          Constructor that takes in a class to see which type of entity to persist.
GenericDaoJpa(java.lang.Class<T> persistentClass, javax.persistence.EntityManager entityManager)
          Constructor that takes in a class to see which type of entity to persist.
 
Method Summary
 boolean exists(PK id)
          Checks for existence of an object of type T using the id arg.
 T get(PK id)
          Generic method to get an object based on class and identifier.
 java.util.List<T> getAll()
          Generic method used to get all objects of a particular type.
 java.util.List<T> getAllDistinct()
          Gets all records without duplicates.
 javax.persistence.EntityManager getEntityManager()
           
 void remove(PK id)
          Generic method to delete an object based on class and id
 T save(T object)
          Generic method to save an object - handles both update and insert.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

protected final org.apache.commons.logging.Log log
Log variable for all child classes. Uses LogFactory.getLog(getClass()) from Commons Logging


PERSISTENCE_UNIT_NAME

public static final java.lang.String PERSISTENCE_UNIT_NAME
See Also:
Constant Field Values
Constructor Detail

GenericDaoJpa

public GenericDaoJpa(java.lang.Class<T> persistentClass)
Constructor that takes in a class to see which type of entity to persist. Use this constructor when subclassing or using dependency injection.

Parameters:
persistentClass - the class type you'd like to persist

GenericDaoJpa

public GenericDaoJpa(java.lang.Class<T> persistentClass,
                     javax.persistence.EntityManager entityManager)
Constructor that takes in a class to see which type of entity to persist. Use this constructor when subclassing or using dependency injection.

Parameters:
persistentClass - the class type you'd like to persist
entityManager - the configured EntityManager for JPA implementation.
Method Detail

getEntityManager

public javax.persistence.EntityManager getEntityManager()

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 GenericDao<T,PK extends java.io.Serializable>
Returns:
List of populated objects

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 GenericDao<T,PK extends java.io.Serializable>
Returns:
List of populated objects

get

public T get(PK id)
Generic method to get an object based on class and identifier. An ObjectRetrievalFailureException Runtime Exception is thrown if nothing is found.

Specified by:
get in interface GenericDao<T,PK extends java.io.Serializable>
Parameters:
id - the identifier (primary key) of the object to get
Returns:
a populated object
See Also:
org.springframework.orm.ObjectRetrievalFailureException

exists

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

Specified by:
exists in interface GenericDao<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 GenericDao<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 GenericDao<T,PK extends java.io.Serializable>
Parameters:
id - the identifier (primary key) of the object to remove


Copyright © 2003-2009. All Rights Reserved.