org.tynamo.hibernate.services
Class HibernatePersistenceServiceImpl

java.lang.Object
  extended by org.tynamo.hibernate.services.HibernatePersistenceServiceImpl
All Implemented Interfaces:
HibernatePersistenceService, PersistenceService

public class HibernatePersistenceServiceImpl
extends Object
implements HibernatePersistenceService


Constructor Summary
HibernatePersistenceServiceImpl(org.slf4j.Logger logger, DescriptorService descriptorService, org.hibernate.Session session, org.apache.tapestry5.hibernate.HibernateSessionManager sessionManager)
           
 
Method Summary
protected  org.hibernate.criterion.DetachedCriteria alterCriteria(Class type, org.hibernate.criterion.DetachedCriteria detachedCriteria)
          This hook allows subclasses to modify the query criteria, such as for security
 int count(Class type, org.hibernate.criterion.DetachedCriteria detachedCriteria)
           
 List findByQuery(String queryString)
          Execute an HQL query.
 List findByQuery(String queryString, int startIndex, int maxResults, QueryParameter... parameters)
          Execute an HQL query.
 List findByQuery(String queryString, QueryParameter... parameters)
          Execute an HQL query.
 Serializable getIdentifier(Object data, TynamoClassDescriptor classDescriptor)
          Returns an entity's pk.
<T> T
getInstance(Class<T> type)
          (non-Javadoc)
<T> T
getInstance(Class<T> type, org.hibernate.criterion.DetachedCriteria detachedCriteria)
          https://trails.dev.java.net/servlets/ReadMsg?listName=users&msgNo=1226

Very often I find myself writing: Object example = new Object(); example.setProperty(uniqueValue); List objects = ((TynamoPage)getPage()).getPersistenceService().getInstances(example); (MyObject)objects.get(0); when, in fact, I know that the single property I populated my example object with should be unique, and thus only one object should be returned

<T> T
getInstance(Class<T> type, Serializable id)
          (non-Javadoc)
<T> List<T>
getInstances(Class<T> type)
          (non-Javadoc)
<T> List<T>
getInstances(Class<T> type, org.hibernate.criterion.DetachedCriteria criteria)
           
<T> List<T>
getInstances(Class<T> type, org.hibernate.criterion.DetachedCriteria detachedCriteria, int startIndex, int maxResults)
           
<T> List<T>
getInstances(Class<T> type, int startIndex, int maxResults)
           
 List getInstances(org.hibernate.criterion.DetachedCriteria detachedCriteria, int startIndex, int maxResults)
           
 List getInstances(Object example, TynamoClassDescriptor classDescriptor)
          Does a query by example
 boolean isTransient(Object data, TynamoClassDescriptor classDescriptor)
           
<T> T
loadInstance(Class<T> type, Serializable id)
          Description copied from: Session.load(Class,java.io.Serializable)

Return the persistent instance of the given entity class with the given identifier, assuming that the instance exists, throwing an exception if not found.

<T> T
merge(T instance)
           
 void reattach(Object model)
          (non-Javadoc)
 void remove(Object instance)
           
 void removeAll(Collection collection)
           
 void removeCollectionElement(String removeExpression, Object member, Object parent)
           
<T> T
save(T instance)
          (non-Javadoc)
<T> T
saveCollectionElement(String addExpression, T member, Object parent)
           
<T> T
saveOrUpdate(T instance)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HibernatePersistenceServiceImpl

public HibernatePersistenceServiceImpl(org.slf4j.Logger logger,
                                       DescriptorService descriptorService,
                                       org.hibernate.Session session,
                                       org.apache.tapestry5.hibernate.HibernateSessionManager sessionManager)
Method Detail

getInstance

public <T> T getInstance(Class<T> type,
                         org.hibernate.criterion.DetachedCriteria detachedCriteria)
https://trails.dev.java.net/servlets/ReadMsg?listName=users&msgNo=1226

Very often I find myself writing: Object example = new Object(); example.setProperty(uniqueValue); List objects = ((TynamoPage)getPage()).getPersistenceService().getInstances(example); (MyObject)objects.get(0); when, in fact, I know that the single property I populated my example object with should be unique, and thus only one object should be returned

Specified by:
getInstance in interface HibernatePersistenceService
Parameters:
type - The type to use to check for security restrictions.
detachedCriteria -
Returns:

getInstance

public <T> T getInstance(Class<T> type,
                         Serializable id)
(non-Javadoc)

Specified by:
getInstance in interface PersistenceService
See Also:
PersistenceService.getInstance(Class,Serializable)

loadInstance

public <T> T loadInstance(Class<T> type,
                          Serializable id)
Description copied from: Session.load(Class,java.io.Serializable)

Return the persistent instance of the given entity class with the given identifier, assuming that the instance exists, throwing an exception if not found.

You should not use this method to determine if an instance exists (use get() instead). Use this only to retrieve an instance that you assume exists, where non-existence would be an actual error.

This method is a thin wrapper around Session.load(Class,java.io.Serializable) for convenience. For an explanation of the exact semantics of this method, please do refer to the Hibernate API documentation in the first instance.

Specified by:
loadInstance in interface PersistenceService
Parameters:
type - a persistent class
id - the identifier of the persistent instance
Returns:
the persistent instance
See Also:
Session.load(Class,java.io.Serializable)

findByQuery

public List findByQuery(String queryString)
Execute an HQL query.

Specified by:
findByQuery in interface HibernatePersistenceService
Parameters:
queryString - a query expressed in Hibernate's query language
Returns:
a List of entities containing the results of the query execution

findByQuery

public List findByQuery(String queryString,
                        QueryParameter... parameters)
Execute an HQL query.

Specified by:
findByQuery in interface HibernatePersistenceService
Parameters:
queryString - a query expressed in Hibernate's query language
parameters - the (optional) parameters for the query.
Returns:
a List of entities containing the results of the query execution

findByQuery

public List findByQuery(String queryString,
                        int startIndex,
                        int maxResults,
                        QueryParameter... parameters)
Execute an HQL query.

Specified by:
findByQuery in interface HibernatePersistenceService
Parameters:
queryString - a query expressed in Hibernate's query language
startIndex - the index of the first item to be retrieved
maxResults - the number of items to be retrieved, if 0 it retrieves ALL the items
parameters - the (optional) parameters for the query.
Returns:
a List of entities containing the results of the query execution

getInstances

public <T> List<T> getInstances(Class<T> type)
(non-Javadoc)

Specified by:
getInstances in interface PersistenceService
See Also:
PersistenceService.getInstances(java.lang.Class)

getInstances

public <T> List<T> getInstances(Class<T> type,
                                int startIndex,
                                int maxResults)
Specified by:
getInstances in interface PersistenceService

save

public <T> T save(T instance)
(non-Javadoc)

Specified by:
save in interface HibernatePersistenceService
Specified by:
save in interface PersistenceService
See Also:
PersistenceService.save(java.lang.Object)

removeAll

public void removeAll(Collection collection)
Specified by:
removeAll in interface PersistenceService

remove

public void remove(Object instance)
Specified by:
remove in interface HibernatePersistenceService
Specified by:
remove in interface PersistenceService

getInstances

public <T> List<T> getInstances(Class<T> type,
                                org.hibernate.criterion.DetachedCriteria criteria)
Specified by:
getInstances in interface HibernatePersistenceService

reattach

public void reattach(Object model)
(non-Javadoc)

Specified by:
reattach in interface HibernatePersistenceService
Parameters:
model - to attach to the current persistence session
See Also:
org.tynamo.services.PersistenceService#getAllTypes()

getInstance

public <T> T getInstance(Class<T> type)
(non-Javadoc)

Specified by:
getInstance in interface PersistenceService
See Also:
org.tynamo.services.PersistenceService#getInstance(Class)

getIdentifier

public Serializable getIdentifier(Object data,
                                  TynamoClassDescriptor classDescriptor)
Returns an entity's pk.

Parameters:
data -
classDescriptor -
Returns:

isTransient

public boolean isTransient(Object data,
                           TynamoClassDescriptor classDescriptor)
Specified by:
isTransient in interface PersistenceService

getInstances

public List getInstances(Object example,
                         TynamoClassDescriptor classDescriptor)
Description copied from interface: HibernatePersistenceService
Does a query by example

Specified by:
getInstances in interface HibernatePersistenceService
Returns:

count

public int count(Class type,
                 org.hibernate.criterion.DetachedCriteria detachedCriteria)
Specified by:
count in interface HibernatePersistenceService

getInstances

public <T> List<T> getInstances(Class<T> type,
                                org.hibernate.criterion.DetachedCriteria detachedCriteria,
                                int startIndex,
                                int maxResults)
Specified by:
getInstances in interface HibernatePersistenceService

getInstances

public List getInstances(org.hibernate.criterion.DetachedCriteria detachedCriteria,
                         int startIndex,
                         int maxResults)

alterCriteria

protected org.hibernate.criterion.DetachedCriteria alterCriteria(Class type,
                                                                 org.hibernate.criterion.DetachedCriteria detachedCriteria)
This hook allows subclasses to modify the query criteria, such as for security

Parameters:
detachedCriteria - The original Criteria query
Returns:
The modified Criteria query for execution

merge

public <T> T merge(T instance)
Specified by:
merge in interface HibernatePersistenceService
See Also:
HibernatePersistenceService.saveOrUpdate(java.lang.Object)

saveOrUpdate

public <T> T saveOrUpdate(T instance)
Specified by:
saveOrUpdate in interface HibernatePersistenceService
See Also:
HibernatePersistenceService.saveOrUpdate(java.lang.Object)

saveCollectionElement

public <T> T saveCollectionElement(String addExpression,
                                   T member,
                                   Object parent)
Specified by:
saveCollectionElement in interface PersistenceService

removeCollectionElement

public void removeCollectionElement(String removeExpression,
                                    Object member,
                                    Object parent)
Specified by:
removeCollectionElement in interface PersistenceService


Copyright © 2004-2009. All Rights Reserved.