org.rydzewski.common.hibernate
Class HibernateTemplate

java.lang.Object
  extended by org.rydzewski.common.hibernate.HibernateTemplate
Direct Known Subclasses:
HibernateSessionFilter

public class HibernateTemplate
extends java.lang.Object

Klasa pozwalająca zawrzeć podany kod operujący na Hibernate w jednym cyklu życia obiektu Session. Do metody action() przekazuje się instancję obiektu Command który zawiera logikę operacji na Hibernate. Zwykle stosuje się w tym celu anonimowe instancje klasy Command. Sama klasa HibernateTemplate za pomocą wstrzykiwanych pluginów SessionProvider oraz SessionInterceptor pozwala na operowanie na sesjach Hibernate związanych z wątkiem (CurrentSession) bądź na zwykłych, otwieranych na żądanie. Obiekty Command mogą być rozszrzone o DTOAssemblera pozwalającego na przepisanie obiektów (zawierających odwołania lazy-loading) w celu przesłania ich do innej warstwy nie mającej już dostępu do sesji Hibernate.

Author:
Mikolaj Rydzewski

Field Summary
private static org.apache.commons.logging.Log log
           
private  SessionInterceptor sessionInterceptor
           
private  SessionProvider sessionProvider
           
 
Constructor Summary
HibernateTemplate()
           
 
Method Summary
 java.lang.Object action(Command command)
          Pobiera sesję za pomocą SessionProvider, informuje SessionInterceptora, wywołuje Command, jeśli trzeba to wywołuje odpowiedniego DTOAssemblera, informuje SessionInterceptora.
 void delete(java.io.Serializable o)
          Proste wywołanie session.delete()
 java.util.List findAll(java.lang.Class klazz)
          Zwróci wszystkie wystąpienia danego obiektu.
 java.util.List findByExample(java.io.Serializable example)
          Metoda upraszczająca wyszukiwanie obiektów wg prostych kryteriów.
 java.lang.Object get(java.lang.Class clazz, java.io.Serializable id)
          Metoda upraszczająca wywołanie Session.get
 SessionInterceptor getSessionInterceptor()
           
 SessionProvider getSessionProvider()
           
 java.util.List list(java.lang.String hqlQuery)
          Metoda upraszczająca wywołanie Session.createQuery().list
 java.lang.Object load(java.lang.Class clazz, java.io.Serializable id)
          Metoda upraszczająca wywołanie Session.load
 void saveOrUpdate(java.io.Serializable o)
          Proste wywołanie session.saveOrUpdate()
 void setSessionInterceptor(SessionInterceptor sessionInterceptor)
          Ustawia odpowiedni obiekt SessionInterceptor pozwalający na obsługę zdarzeń przed wywołaniem akcji, po wywołaniu, oraz na samym końcu operacji
 void setSessionProvider(SessionProvider sessionProvider)
          Ustawia odpowiedni obiekt SessionProvider służący do pobierania sesji Hibernate
 java.lang.Object uniqueResult(java.lang.String hqlQuery)
          Metoda upraszczająca wywołanie Session.createQuery().uniqueResult
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

private static org.apache.commons.logging.Log log

sessionProvider

private SessionProvider sessionProvider

sessionInterceptor

private SessionInterceptor sessionInterceptor
Constructor Detail

HibernateTemplate

public HibernateTemplate()
Method Detail

setSessionInterceptor

public void setSessionInterceptor(SessionInterceptor sessionInterceptor)
Ustawia odpowiedni obiekt SessionInterceptor pozwalający na obsługę zdarzeń przed wywołaniem akcji, po wywołaniu, oraz na samym końcu operacji

Parameters:
sessionInterceptor -

setSessionProvider

public void setSessionProvider(SessionProvider sessionProvider)
Ustawia odpowiedni obiekt SessionProvider służący do pobierania sesji Hibernate

Parameters:
sessionProvider -

get

public java.lang.Object get(java.lang.Class clazz,
                            java.io.Serializable id)
Metoda upraszczająca wywołanie Session.get

Parameters:
clazz -
id -
Returns:

load

public java.lang.Object load(java.lang.Class clazz,
                             java.io.Serializable id)
Metoda upraszczająca wywołanie Session.load

Parameters:
clazz -
id -
Returns:

saveOrUpdate

public void saveOrUpdate(java.io.Serializable o)
Proste wywołanie session.saveOrUpdate()

Parameters:
o -

delete

public void delete(java.io.Serializable o)
Proste wywołanie session.delete()

Parameters:
o -

list

public java.util.List list(java.lang.String hqlQuery)
Metoda upraszczająca wywołanie Session.createQuery().list

Parameters:
hqlQuery -
Returns:

findByExample

public java.util.List findByExample(java.io.Serializable example)
Metoda upraszczająca wyszukiwanie obiektów wg prostych kryteriów. Wywołuje kod:
          return session.createCriteria(example.getClass())
                                .add(Example.create(example))
                                .list();
         

Parameters:
example -
Returns:

findAll

public java.util.List findAll(java.lang.Class klazz)
Zwróci wszystkie wystąpienia danego obiektu. Taki "select * from"

Parameters:
klazz -
Returns:

uniqueResult

public java.lang.Object uniqueResult(java.lang.String hqlQuery)
Metoda upraszczająca wywołanie Session.createQuery().uniqueResult

Parameters:
hqlQuery -
Returns:

action

public java.lang.Object action(Command command)
Pobiera sesję za pomocą SessionProvider, informuje SessionInterceptora, wywołuje Command, jeśli trzeba to wywołuje odpowiedniego DTOAssemblera, informuje SessionInterceptora.

Parameters:
command -
Returns:

getSessionInterceptor

public SessionInterceptor getSessionInterceptor()

getSessionProvider

public SessionProvider getSessionProvider()