org.codehaus.groovy.grails.orm.hibernate.cfg
Class GrailsHibernateUtil

java.lang.Object
  extended by org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsHibernateUtil

public class GrailsHibernateUtil
extends java.lang.Object

Utility methods for configuring Hibernate inside Grails.

Since:
0.4

Field Summary
static java.lang.String ARGUMENT_CACHE
           
static java.lang.String ARGUMENT_FETCH
           
static java.lang.String ARGUMENT_FETCH_SIZE
           
static java.lang.String ARGUMENT_FLUSH_MODE
           
static java.lang.String ARGUMENT_IGNORE_CASE
           
static java.lang.String ARGUMENT_LOCK
           
static java.lang.String ARGUMENT_MAX
           
static java.lang.String ARGUMENT_OFFSET
           
static java.lang.String ARGUMENT_ORDER
           
static java.lang.String ARGUMENT_READ_ONLY
           
static java.lang.String ARGUMENT_SORT
           
static java.lang.String ARGUMENT_TIMEOUT
           
static java.lang.String CONFIG_PROPERTY_CACHE_QUERIES
           
static java.lang.Class<?>[] EMPTY_CLASS_ARRAY
           
static java.lang.String ORDER_ASC
           
static java.lang.String ORDER_DESC
           
 
Constructor Summary
GrailsHibernateUtil()
           
 
Method Summary
static void autoAssociateBidirectionalOneToOnes(org.codehaus.groovy.grails.commons.DefaultGrailsDomainClass domainClass, java.lang.Object target)
           
static GroovyAwareJavassistProxyFactory buildProxyFactory(org.hibernate.mapping.PersistentClass persistentClass)
           
static void cacheCriteriaByMapping(java.lang.Class<?> targetClass, org.hibernate.Criteria criteria)
          Configures the criteria instance to cache based on the configured mapping.
static void cacheCriteriaByMapping(org.codehaus.groovy.grails.commons.GrailsApplication grailsApplication, java.lang.Class<?> targetClass, org.hibernate.Criteria criteria)
           
static void configureHibernateDomainClasses(org.hibernate.SessionFactory sessionFactory, java.lang.String sessionFactoryName, org.codehaus.groovy.grails.commons.GrailsApplication application)
           
static void configureInheritanceMappings(java.util.Map hibernateDomainClassMap)
           
static void enableDynamicFilterEnablerIfPresent(org.hibernate.SessionFactory sessionFactory, org.hibernate.Session session)
           
static void ensureCorrectGroovyMetaClass(java.lang.Object target, java.lang.Class<?> persistentClass)
          Ensures the meta class is correct for a given class
static org.hibernate.proxy.HibernateProxy getAssociationProxy(java.lang.Object obj, java.lang.String associationName)
          Returns the proxy for a given association or null if it is not proxied
static java.util.List<java.lang.String> getDatasourceNames(org.codehaus.groovy.grails.commons.GrailsDomainClass domainClass)
           
static java.lang.String getDefaultDataSource(org.codehaus.groovy.grails.commons.GrailsDomainClass domainClass)
          If a domain class uses more than one datasource, we need to know which one to use when calling a method without a namespace qualifier.
static org.hibernate.FetchMode getFetchMode(java.lang.Object object)
          Retrieves the fetch mode for the specified instance; otherwise returns the default FetchMode.
static void incrementVersion(java.lang.Object target)
          Increments the entities version number in order to force an update
static boolean isCacheQueriesByDefault()
           
static boolean isCacheQueriesByDefault(org.codehaus.groovy.grails.commons.GrailsApplication grailsApplication)
           
static boolean isInitialized(java.lang.Object obj, java.lang.String associationName)
          Checks whether an associated property is initialized and returns true if it is
static boolean isMappedWithHibernate(org.codehaus.groovy.grails.commons.GrailsDomainClass domainClass)
           
static void populateArgumentsForCriteria(java.lang.Class<?> targetClass, org.hibernate.Criteria c, java.util.Map argMap)
          Deprecated. Use populateArgumentsForCriteria(org.codehaus.groovy.grails.commons.GrailsApplication, Class, org.hibernate.Criteria, java.util.Map) instead
static void populateArgumentsForCriteria(org.hibernate.Criteria c, java.util.Map argMap)
           
static void populateArgumentsForCriteria(org.codehaus.groovy.grails.commons.GrailsApplication grailsApplication, java.lang.Class<?> targetClass, org.hibernate.Criteria c, java.util.Map argMap)
          Populates criteria arguments for the given target class and arguments map
static void setObjectToReadWrite(java.lang.Object target, org.hibernate.SessionFactory sessionFactory)
          Sets the target object to read-write, allowing Hibernate to dirty check it and auto-flush changes.
static void setObjectToReadyOnly(java.lang.Object target, org.hibernate.SessionFactory sessionFactory)
          Sets the target object to read-only using the given SessionFactory instance.
static java.lang.Object unwrapIfProxy(java.lang.Object instance)
           
static java.lang.Object unwrapProxy(org.hibernate.proxy.HibernateProxy proxy)
          Unwraps and initializes a HibernateProxy.
static boolean usesDatasource(org.codehaus.groovy.grails.commons.GrailsDomainClass domainClass, java.lang.String dataSourceName)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ARGUMENT_FETCH_SIZE

public static final java.lang.String ARGUMENT_FETCH_SIZE
See Also:
Constant Field Values

ARGUMENT_TIMEOUT

public static final java.lang.String ARGUMENT_TIMEOUT
See Also:
Constant Field Values

ARGUMENT_READ_ONLY

public static final java.lang.String ARGUMENT_READ_ONLY
See Also:
Constant Field Values

ARGUMENT_FLUSH_MODE

public static final java.lang.String ARGUMENT_FLUSH_MODE
See Also:
Constant Field Values

ARGUMENT_MAX

public static final java.lang.String ARGUMENT_MAX
See Also:
Constant Field Values

ARGUMENT_OFFSET

public static final java.lang.String ARGUMENT_OFFSET
See Also:
Constant Field Values

ARGUMENT_ORDER

public static final java.lang.String ARGUMENT_ORDER
See Also:
Constant Field Values

ARGUMENT_SORT

public static final java.lang.String ARGUMENT_SORT
See Also:
Constant Field Values

ORDER_DESC

public static final java.lang.String ORDER_DESC
See Also:
Constant Field Values

ORDER_ASC

public static final java.lang.String ORDER_ASC
See Also:
Constant Field Values

ARGUMENT_FETCH

public static final java.lang.String ARGUMENT_FETCH
See Also:
Constant Field Values

ARGUMENT_IGNORE_CASE

public static final java.lang.String ARGUMENT_IGNORE_CASE
See Also:
Constant Field Values

ARGUMENT_CACHE

public static final java.lang.String ARGUMENT_CACHE
See Also:
Constant Field Values

ARGUMENT_LOCK

public static final java.lang.String ARGUMENT_LOCK
See Also:
Constant Field Values

CONFIG_PROPERTY_CACHE_QUERIES

public static final java.lang.String CONFIG_PROPERTY_CACHE_QUERIES
See Also:
Constant Field Values

EMPTY_CLASS_ARRAY

public static final java.lang.Class<?>[] EMPTY_CLASS_ARRAY
Constructor Detail

GrailsHibernateUtil

public GrailsHibernateUtil()
Method Detail

enableDynamicFilterEnablerIfPresent

public static void enableDynamicFilterEnablerIfPresent(org.hibernate.SessionFactory sessionFactory,
                                                       org.hibernate.Session session)

configureHibernateDomainClasses

public static void configureHibernateDomainClasses(org.hibernate.SessionFactory sessionFactory,
                                                   java.lang.String sessionFactoryName,
                                                   org.codehaus.groovy.grails.commons.GrailsApplication application)

configureInheritanceMappings

public static void configureInheritanceMappings(java.util.Map hibernateDomainClassMap)

populateArgumentsForCriteria

public static void populateArgumentsForCriteria(org.codehaus.groovy.grails.commons.GrailsApplication grailsApplication,
                                                java.lang.Class<?> targetClass,
                                                org.hibernate.Criteria c,
                                                java.util.Map argMap)
Populates criteria arguments for the given target class and arguments map

Parameters:
grailsApplication - the GrailsApplication instance
targetClass - The target class
c - The criteria instance
argMap - The arguments map

populateArgumentsForCriteria

@Deprecated
public static void populateArgumentsForCriteria(java.lang.Class<?> targetClass,
                                                           org.hibernate.Criteria c,
                                                           java.util.Map argMap)
Deprecated. Use populateArgumentsForCriteria(org.codehaus.groovy.grails.commons.GrailsApplication, Class, org.hibernate.Criteria, java.util.Map) instead

Populates criteria arguments for the given target class and arguments map

Parameters:
targetClass - The target class
c - The criteria instance
argMap - The arguments map

cacheCriteriaByMapping

public static void cacheCriteriaByMapping(java.lang.Class<?> targetClass,
                                          org.hibernate.Criteria criteria)
Configures the criteria instance to cache based on the configured mapping.

Parameters:
targetClass - The target class
criteria - The criteria

cacheCriteriaByMapping

public static void cacheCriteriaByMapping(org.codehaus.groovy.grails.commons.GrailsApplication grailsApplication,
                                          java.lang.Class<?> targetClass,
                                          org.hibernate.Criteria criteria)

populateArgumentsForCriteria

public static void populateArgumentsForCriteria(org.hibernate.Criteria c,
                                                java.util.Map argMap)

getFetchMode

public static org.hibernate.FetchMode getFetchMode(java.lang.Object object)
Retrieves the fetch mode for the specified instance; otherwise returns the default FetchMode.

Parameters:
object - The object, converted to a string
Returns:
The FetchMode

setObjectToReadyOnly

public static void setObjectToReadyOnly(java.lang.Object target,
                                        org.hibernate.SessionFactory sessionFactory)
Sets the target object to read-only using the given SessionFactory instance. This avoids Hibernate performing any dirty checking on the object

Parameters:
target - The target object
sessionFactory - The SessionFactory instance
See Also:
setObjectToReadWrite(Object, org.hibernate.SessionFactory)

setObjectToReadWrite

public static void setObjectToReadWrite(java.lang.Object target,
                                        org.hibernate.SessionFactory sessionFactory)
Sets the target object to read-write, allowing Hibernate to dirty check it and auto-flush changes.

Parameters:
target - The target object
sessionFactory - The SessionFactory instance
See Also:
setObjectToReadyOnly(Object, org.hibernate.SessionFactory)

incrementVersion

public static void incrementVersion(java.lang.Object target)
Increments the entities version number in order to force an update

Parameters:
target - The target entity

ensureCorrectGroovyMetaClass

public static void ensureCorrectGroovyMetaClass(java.lang.Object target,
                                                java.lang.Class<?> persistentClass)
Ensures the meta class is correct for a given class

Parameters:
target - The GroovyObject
persistentClass - The persistent class

unwrapProxy

public static java.lang.Object unwrapProxy(org.hibernate.proxy.HibernateProxy proxy)
Unwraps and initializes a HibernateProxy.

Parameters:
proxy - The proxy
Returns:
the unproxied instance

getAssociationProxy

public static org.hibernate.proxy.HibernateProxy getAssociationProxy(java.lang.Object obj,
                                                                     java.lang.String associationName)
Returns the proxy for a given association or null if it is not proxied

Parameters:
obj - The object
associationName - The named assoication
Returns:
A proxy

isInitialized

public static boolean isInitialized(java.lang.Object obj,
                                    java.lang.String associationName)
Checks whether an associated property is initialized and returns true if it is

Parameters:
obj - The name of the object
associationName - The name of the association
Returns:
True if is initialized

isCacheQueriesByDefault

public static boolean isCacheQueriesByDefault()

isCacheQueriesByDefault

public static boolean isCacheQueriesByDefault(org.codehaus.groovy.grails.commons.GrailsApplication grailsApplication)

buildProxyFactory

public static GroovyAwareJavassistProxyFactory buildProxyFactory(org.hibernate.mapping.PersistentClass persistentClass)

unwrapIfProxy

public static java.lang.Object unwrapIfProxy(java.lang.Object instance)

usesDatasource

public static boolean usesDatasource(org.codehaus.groovy.grails.commons.GrailsDomainClass domainClass,
                                     java.lang.String dataSourceName)

getDefaultDataSource

public static java.lang.String getDefaultDataSource(org.codehaus.groovy.grails.commons.GrailsDomainClass domainClass)
If a domain class uses more than one datasource, we need to know which one to use when calling a method without a namespace qualifier.

Parameters:
domainClass - the domain class
Returns:
the default datasource name

getDatasourceNames

public static java.util.List<java.lang.String> getDatasourceNames(org.codehaus.groovy.grails.commons.GrailsDomainClass domainClass)

isMappedWithHibernate

public static boolean isMappedWithHibernate(org.codehaus.groovy.grails.commons.GrailsDomainClass domainClass)

autoAssociateBidirectionalOneToOnes

public static void autoAssociateBidirectionalOneToOnes(org.codehaus.groovy.grails.commons.DefaultGrailsDomainClass domainClass,
                                                       java.lang.Object target)