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.String CONFIG_PROPERTY_OSIV_READONLY
           
static java.lang.Class<?>[] EMPTY_CLASS_ARRAY
           
protected static org.apache.commons.logging.Log LOG
           
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 boolean isNotEmpty(java.lang.String string)
           
static boolean isOsivReadonly(org.codehaus.groovy.grails.commons.GrailsApplication grailsApplication)
           
static void populateArgumentsForCriteria(java.lang.Class<?> targetClass, org.hibernate.Criteria c, java.util.Map argMap, org.springframework.core.convert.ConversionService conversionService)
          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, org.springframework.core.convert.ConversionService conversionService)
           
static void populateArgumentsForCriteria(org.codehaus.groovy.grails.commons.GrailsApplication grailsApplication, java.lang.Class<?> targetClass, org.hibernate.Criteria c, java.util.Map argMap, org.springframework.core.convert.ConversionService conversionService)
           
static void populateArgumentsForCriteria(org.codehaus.groovy.grails.commons.GrailsApplication grailsApplication, java.lang.Class<?> targetClass, org.hibernate.Criteria c, java.util.Map argMap, org.springframework.core.convert.ConversionService conversionService, boolean useDefaultMapping)
          Populates criteria arguments for the given target class and arguments map
static java.lang.String qualify(java.lang.String prefix, java.lang.String name)
           
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.String unqualify(java.lang.String qualifiedName)
           
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

LOG

protected static final org.apache.commons.logging.Log LOG

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

CONFIG_PROPERTY_OSIV_READONLY

public static final java.lang.String CONFIG_PROPERTY_OSIV_READONLY
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,
                                                org.springframework.core.convert.ConversionService conversionService)

populateArgumentsForCriteria

public static void populateArgumentsForCriteria(org.codehaus.groovy.grails.commons.GrailsApplication grailsApplication,
                                                java.lang.Class<?> targetClass,
                                                org.hibernate.Criteria c,
                                                java.util.Map argMap,
                                                org.springframework.core.convert.ConversionService conversionService,
                                                boolean useDefaultMapping)
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,
                                                           org.springframework.core.convert.ConversionService conversionService)
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

populateArgumentsForCriteria

public static void populateArgumentsForCriteria(org.hibernate.Criteria c,
                                                java.util.Map argMap,
                                                org.springframework.core.convert.ConversionService conversionService)

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)

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)

isOsivReadonly

public static boolean isOsivReadonly(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)

qualify

public static java.lang.String qualify(java.lang.String prefix,
                                       java.lang.String name)

isNotEmpty

public static boolean isNotEmpty(java.lang.String string)

unqualify

public static java.lang.String unqualify(java.lang.String qualifiedName)