gov.nih.nci.caarray.util
Interface CaArrayHibernateHelper

All Known Implementing Classes:
CaArrayHibernateHelperImpl, CaArrayHibernateHelperUnsupportedOperationImpl

public interface CaArrayHibernateHelper

Author:
jscott

Method Summary
 org.hibernate.Transaction beginTransaction()
          Starts a transaction on the current Hibernate session.
 java.lang.String buildInClauses(java.util.List<? extends java.io.Serializable> items, java.lang.String columnName, java.util.Map<java.lang.String,java.util.List<? extends java.io.Serializable>> blocks)
          Break up a list of items into separate in clauses, to avoid limits imposed by databases or by Hibernate bug http://opensource.atlassian.com/projects/hibernate/browse/HHH-2166.
 void disableFilters()
          Disable security filters on the current session.
 java.lang.Object doUnfiltered(UnfilteredCallback uc)
          Do something in an unfiltered session.
 org.hibernate.cfg.Configuration getConfiguration()
           
 org.hibernate.Session getCurrentSession()
          Returns the current Hibernate session.
 java.sql.Connection getNewConnection()
           
 org.hibernate.SessionFactory getSessionFactory()
           
 void openAndBindSession()
          Open a hibernate session and bind it as the current session via org.hibernate.context.ManagedSessionContext#bind(org.hibernate.classic.Session).
 void rollbackTransaction(org.hibernate.Transaction tx)
          Checks if the transaction is active and then rolls it back.
 void setFiltersEnabled(boolean enable)
          Set whether security filters should be enabled for the next session returned from getCurrentSession().
 void setQueryParams(java.util.Map<java.lang.String,java.lang.Object> params, org.hibernate.Query q)
          Sets the named parameters in the given query from the given map.
 void unbindAndCleanupSession()
          Close the current session and unbind it via ManagedSessionContext#unbind(SessionFactory).
 java.lang.Object unwrapProxy(java.lang.Object entity)
          If entity is a hibernate proxy, return the actual object it proxies, otherwise return the entity itself.
 

Method Detail

beginTransaction

org.hibernate.Transaction beginTransaction()
Starts a transaction on the current Hibernate session. Intended for use in unit tests - DAO / Service layer logic should rely on container-managed transactions

Returns:
a Hibernate session.

buildInClauses

java.lang.String buildInClauses(java.util.List<? extends java.io.Serializable> items,
                                java.lang.String columnName,
                                java.util.Map<java.lang.String,java.util.List<? extends java.io.Serializable>> blocks)
Break up a list of items into separate in clauses, to avoid limits imposed by databases or by Hibernate bug http://opensource.atlassian.com/projects/hibernate/browse/HHH-2166.

Parameters:
items - list of items to include in the in clause
columnName - name of column to match against the list
blocks - empty Map of HQL param name to param list of values to be set in the HQL query - it will be populated by the method
Returns:
full HQL "in" clause, of the form: " columnName in (:block1) or ... or columnName in (:blockN)"

disableFilters

void disableFilters()
Disable security filters on the current session.


doUnfiltered

java.lang.Object doUnfiltered(UnfilteredCallback uc)
Do something in an unfiltered session.

Parameters:
uc - callback class
Returns:
the result

getConfiguration

org.hibernate.cfg.Configuration getConfiguration()
Returns:
the configuration

getCurrentSession

org.hibernate.Session getCurrentSession()
Returns the current Hibernate session. Note that this returns a special session that can be used only in the context of a transaction. (Assuming that the hibernate properties are set to use a JTA or JDBC transaction factory.)

Returns:
a Hibernate session.
See Also:
HibernateHelper#getCurrentSession()

getNewConnection

java.sql.Connection getNewConnection()
                                     throws java.sql.SQLException
Returns:
a new Connection from the data source underlying the hibernate session factory
Throws:
java.sql.SQLException - if an error occurs obtaining the connection

getSessionFactory

org.hibernate.SessionFactory getSessionFactory()
Returns:
the sessionFactory

openAndBindSession

void openAndBindSession()
Open a hibernate session and bind it as the current session via org.hibernate.context.ManagedSessionContext#bind(org.hibernate.classic.Session). The hibernate property "hibernate.current_session_context_class" must be set to "managed" for this to have effect This method should be called from within an Interceptor or Filter type class that is setting up the scope of the Session. This method should then call unbindAndCleanupSession() when the scope of the Session is expired. Clears the SecurityInterceptor.

See Also:
HibernateHelper#openAndBindSession()

rollbackTransaction

void rollbackTransaction(org.hibernate.Transaction tx)
Checks if the transaction is active and then rolls it back.

Parameters:
tx - the Transaction to roll back.

setFiltersEnabled

void setFiltersEnabled(boolean enable)
Set whether security filters should be enabled for the next session returned from getCurrentSession(). This should generally only be called via test code.

Parameters:
enable - whether the filters should be enabled.

setQueryParams

void setQueryParams(java.util.Map<java.lang.String,java.lang.Object> params,
                    org.hibernate.Query q)
Sets the named parameters in the given query from the given map.

Parameters:
params - map of parameter name -> value(s) for that named parameter.
q - the query

unbindAndCleanupSession

void unbindAndCleanupSession()
Close the current session and unbind it via ManagedSessionContext#unbind(SessionFactory). The hibernate property "hibernate.current_session_context_class" must be set to "managed" for this to have effect. This method should be called from within an Interceptor or Filter type class that is setting up the scope of the Session, when this scope is about to expire.


unwrapProxy

java.lang.Object unwrapProxy(java.lang.Object entity)
If entity is a hibernate proxy, return the actual object it proxies, otherwise return the entity itself.

Parameters:
entity - the object to unwrap (if it is a proxy)
Returns:
the unwrapped proxy, or original object.