org.randomcoder.dao.hibernate
Class HibernateDao<T,PK extends Serializable>

java.lang.Object
  extended by org.randomcoder.dao.hibernate.HibernateDao<T,PK>
All Implemented Interfaces:
CreatableDao<T,PK>, CrudDao<T,PK>, DeletableDao<T,PK>, FinderExecutor, ReadableDao<T,PK>, UpdatableDao<T,PK>
Direct Known Subclasses:
CardSpaceSeenTokenDaoImpl, TagDaoImpl

public class HibernateDao<T,PK extends Serializable>
extends Object
implements CrudDao<T,PK>, FinderExecutor

Hibernate implementation of CrudDao.

Inspired by Per Mellqvist's IBM developerWorks article, Don't repeat the DAO!.

 Copyright (c) 2006, Craig Condit. All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
 
   * Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above copyright notice,
     this list of conditions and the following disclaimer in the documentation
     and/or other materials provided with the distribution.
     
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGE.
 


Constructor Summary
HibernateDao(Class<T> type)
           
 
Method Summary
 int count(Method method, Object[] args)
          Gets a count of objects
 PK create(T o)
          Create a new instance of <T>
 void delete(T o)
          Deletes an object
 Object find(Method method, Object[] args)
          Find a single object
protected  Session getSession()
          Gets the current Hibernate session from the session factory.
 Iterator<T> iterate(Method method, Object[] args)
          Get an iterator of objects
 Iterator<T> iterate(Method method, Object[] args, int start, int limit)
          Get an iterator of objects
 List<T> list(Method method, Object[] args)
          Get a list of objects
 List<T> list(Method method, Object[] args, int start, int limit)
          Get a list of objects
 T read(PK id)
          Load an instance of <T> by primary key
 void setSessionFactory(SessionFactory sessionFactory)
          Sets the session factory implementation to use.
 void update(T o)
          Updates an object
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HibernateDao

public HibernateDao(Class<T> type)
Method Detail

setSessionFactory

public void setSessionFactory(SessionFactory sessionFactory)
Sets the session factory implementation to use.

Parameters:
sessionFactory - session factory

create

public PK create(T o)
Description copied from interface: CreatableDao
Create a new instance of <T>

Specified by:
create in interface CreatableDao<T,PK extends Serializable>
Parameters:
o - new class instance to save
Returns:
primary key

read

public T read(PK id)
Description copied from interface: ReadableDao
Load an instance of <T> by primary key

Specified by:
read in interface ReadableDao<T,PK extends Serializable>
Parameters:
id - primary key
Returns:
object instance

update

public void update(T o)
Description copied from interface: UpdatableDao
Updates an object

Specified by:
update in interface UpdatableDao<T,PK extends Serializable>
Parameters:
o - object to update

delete

public void delete(T o)
Description copied from interface: DeletableDao
Deletes an object

Specified by:
delete in interface DeletableDao<T,PK extends Serializable>
Parameters:
o - object to delete

count

public int count(Method method,
                 Object[] args)
Description copied from interface: FinderExecutor
Gets a count of objects

Specified by:
count in interface FinderExecutor
Parameters:
method - Method to execute
args - query arguments
Returns:
count of objects

find

public Object find(Method method,
                   Object[] args)
Description copied from interface: FinderExecutor
Find a single object

Specified by:
find in interface FinderExecutor
Parameters:
method - Method to execute
args - query arguments
Returns:
single object

list

public List<T> list(Method method,
                    Object[] args)
Description copied from interface: FinderExecutor
Get a list of objects

Specified by:
list in interface FinderExecutor
Parameters:
method - Method to execute
args - query arguments
Returns:
list of objects

list

public List<T> list(Method method,
                    Object[] args,
                    int start,
                    int limit)
Description copied from interface: FinderExecutor
Get a list of objects

Specified by:
list in interface FinderExecutor
Parameters:
method - Method to execute
args - query arguments
start - start result
limit - maximum result size
Returns:
list of objects

iterate

public Iterator<T> iterate(Method method,
                           Object[] args)
Description copied from interface: FinderExecutor
Get an iterator of objects

Specified by:
iterate in interface FinderExecutor
Parameters:
method - Method to execute
args - query arguments
Returns:
list of objects

iterate

public Iterator<T> iterate(Method method,
                           Object[] args,
                           int start,
                           int limit)
Description copied from interface: FinderExecutor
Get an iterator of objects

Specified by:
iterate in interface FinderExecutor
Parameters:
method - Method to execute
args - query arguments
start - start result
limit - maximum result size
Returns:
list of objects

getSession

protected Session getSession()
Gets the current Hibernate session from the session factory.

Returns:
hibernate session


Copyright © 2006-2010 Craig Condit. All Rights Reserved.