Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
bd9610f
Add Spring Framework code for Hibernate5 and Theme support
jamesfredley Jan 26, 2026
d61df70
Format Spring Framework code to match Grails code style
jamesfredley Jan 26, 2026
f2003f0
Update for Spring Boot 4.x and JUnit Platform Suite
jamesfredley Jan 26, 2026
9da9137
Override Groovy version
jamesfredley Jan 26, 2026
b592119
Update Spring Boot dependencies in build scripts
jamesfredley Jan 26, 2026
b04a70e
Update imports for Spring Boot servlet classes
jamesfredley Jan 26, 2026
a7d1b66
Update Spring Boot to 4.0.1 and add loader tools
jamesfredley Jan 26, 2026
557a59c
Add spring-boot-hibernate as compileOnly dependency
jamesfredley Jan 26, 2026
8286b3a
Use HttpStatus.FOUND for temporary redirects
jamesfredley Jan 26, 2026
c3d0a54
Update import for SecurityProperties package
jamesfredley Jan 26, 2026
706abaa
Update AbstractGrailsTagTests for Spring Framework 7 and Spring Boot 4
jamesfredley Jan 26, 2026
8ee402e
Update grails-core for Spring Boot 4 and Spring Framework 7 compatibi…
jamesfredley Jan 26, 2026
a901db9
Merge branch '8.0.x' into spring-boot-4
jamesfredley Jan 27, 2026
40306f0
Disable tests incompatible with Spring Boot 4 / Spring Framework 7
jamesfredley Jan 29, 2026
609105a
Merge branch '8.0.x' into spring-boot-4
jamesfredley Jan 29, 2026
7ab023c
fix: Update MongoDB properties for Spring Boot 4 compatibility
jamesfredley Jan 29, 2026
0d35d27
chore: Trigger CI re-run
jamesfredley Jan 29, 2026
ae5d7b2
Merge branch '8.0.x' into spring-boot-4
jamesfredley Feb 1, 2026
e5bf91f
Merge branch '8.0.x' into spring-boot-4
jamesfredley Feb 1, 2026
02bef7b
fix: Disable PluginDependencySpec for Spring Boot 4 compatibility
jamesfredley Feb 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 47 additions & 5 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -236,9 +236,51 @@ See licenses/LICENSE-CDDL.txt for the full license terms.

--------------------------------------------------------------------------

This product includes software developed by the OpenSymphony Group (http://www.opensymphony.com/). It uses Sitemesh2,
licensed under the OpenSymphony Software License, Version 1.1.

See licenses/LICENSE-opensymphony.txt for the full license terms.

This product includes software developed by the OpenSymphony Group (http://www.opensymphony.com/). It uses Sitemesh2,
licensed under the OpenSymphony Software License, Version 1.1.

See licenses/LICENSE-opensymphony.txt for the full license terms.

--------------------------------------------------------------------------

This product includes software from the Spring Framework project (https://spring.io/projects/spring-framework),
licensed under the Apache License, Version 2.0.

Copyright 2002-present the original author or authors.

The following files are derived from Spring Framework:

grails-spring/src/main/java/org/springframework/ui/context/HierarchicalThemeSource.java
grails-spring/src/main/java/org/springframework/ui/context/Theme.java
grails-spring/src/main/java/org/springframework/ui/context/ThemeSource.java
grails-spring/src/main/java/org/springframework/ui/context/support/DelegatingThemeSource.java
grails-spring/src/main/java/org/springframework/ui/context/support/ResourceBundleThemeSource.java
grails-spring/src/main/java/org/springframework/ui/context/support/SimpleTheme.java
grails-spring/src/main/java/org/springframework/ui/context/support/UiApplicationContextUtils.java
grails-spring/src/main/java/org/springframework/web/servlet/ThemeResolver.java
grails-spring/src/main/java/org/springframework/web/servlet/theme/AbstractThemeResolver.java
grails-spring/src/main/java/org/springframework/web/servlet/theme/SessionThemeResolver.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/ConfigurableJtaPlatform.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/HibernateCallback.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/HibernateExceptionTranslator.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/HibernateJdbcException.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/HibernateObjectRetrievalFailureException.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/HibernateOperations.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/HibernateOptimisticLockingFailureException.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/HibernateQueryException.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/HibernateSystemException.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/HibernateTemplate.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/HibernateTransactionManager.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/LocalSessionFactoryBean.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/LocalSessionFactoryBuilder.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/SessionFactoryUtils.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/SessionHolder.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/SpringBeanContainer.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/SpringFlushSynchronization.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/SpringJtaSessionContext.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/SpringSessionContext.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/SpringSessionSynchronization.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/support/AsyncRequestInterceptor.java
grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/support/OpenSessionInViewInterceptor.java

--------------------------------------------------------------------------
10 changes: 10 additions & 0 deletions NOTICE
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,16 @@ The Apache Software Foundation (http://www.apache.org/).
Additional Licenses
------------------

This product includes software from the Spring Framework project, licensed under the Apache License, Version 2.0.
Copyright 2002-present the original author or authors.
https://spring.io/projects/spring-framework

The following files are derived from Spring Framework:
- grails-spring/src/main/java/org/springframework/ui/context/* (Theme support)
- grails-spring/src/main/java/org/springframework/web/servlet/ThemeResolver.java
- grails-spring/src/main/java/org/springframework/web/servlet/theme/* (Theme resolvers)
- grails-data-hibernate5/core/src/main/java/org/grails/orm/hibernate/support/hibernate5/* (Hibernate ORM support)

This product uses the Jakarta Annotations™ API which is a trademark of the Eclipse Foundation. It is licensed under
the Eclipse Public License v. 2.0 which is available at https://www.eclipse.org/legal/epl-2.0.

Expand Down
2 changes: 1 addition & 1 deletion build-logic/docs-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ dependencies {

testImplementation "org.codehaus.groovy:groovy-test-junit5:${GroovySystem.version}"
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.12.2'
testImplementation 'org.junit.platform:junit-platform-runner:1.12.2'
testImplementation 'org.junit.platform:junit-platform-suite:1.12.2'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.12.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.12.2'
}
Expand Down
11 changes: 11 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ import java.time.LocalDate
import java.time.ZoneOffset
import java.time.format.DateTimeFormatter

apply from: rootProject.layout.projectDirectory.file('dependencies.gradle')

ext {
isReproducibleBuild = System.getenv("SOURCE_DATE_EPOCH") != null
buildInstant = java.util.Optional.ofNullable(System.getenv("SOURCE_DATE_EPOCH"))
Expand Down Expand Up @@ -70,6 +72,15 @@ subprojects {
def cacheHours = isCiBuild || isReproducibleBuild ? 0 : 24
cacheDynamicVersionsFor(cacheHours, 'hours')
cacheChangingModulesFor(cacheHours, 'hours')

// TODO: Remove these Groovy version overrides once Grails 8 is ready to run on Groovy 5
// Force Groovy version to override Spring Boot 4.0.1's default of Groovy 5.0.3
// This ensures all grails-core modules are compiled with the correct Groovy version
force "org.apache.groovy:groovy:${bomDependencyVersions['groovy.version']}"
force "org.apache.groovy:groovy-templates:${bomDependencyVersions['groovy.version']}"
force "org.apache.groovy:groovy-xml:${bomDependencyVersions['groovy.version']}"
force "org.apache.groovy:groovy-json:${bomDependencyVersions['groovy.version']}"
force "org.apache.groovy:groovy-sql:${bomDependencyVersions['groovy.version']}"
}
}
}
Expand Down
3 changes: 2 additions & 1 deletion dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ ext {
'jna.version' : '5.17.0',
'jquery.version' : '3.7.1',
'objenesis.version' : '3.4',
'spring-boot.version' : '3.5.10',
'spring-boot.version' : '4.0.1',
]

// Note: the name of the dependency must be the prefix of the property name so properties in the pom are resolved correctly
Expand All @@ -64,6 +64,7 @@ ext {
'objenesis' : "org.objenesis:objenesis:${gradleBomDependencyVersions['objenesis.version']}",
'spring-boot-cli' : "org.springframework.boot:spring-boot-cli:${gradleBomDependencyVersions['spring-boot.version']}",
'spring-boot-gradle' : "org.springframework.boot:spring-boot-gradle-plugin:${gradleBomDependencyVersions['spring-boot.version']}",
'spring-boot-loader-tools': "org.springframework.boot:spring-boot-loader-tools:${gradleBomDependencyVersions['spring-boot.version']}",
]

bomDependencyVersions = [
Expand Down
10 changes: 10 additions & 0 deletions grails-bom/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,16 @@ ext {
for (Map.Entry<String, String> property : pomProperties.entrySet()) {
propertiesNode.appendNode(property.key, property.value)
}

// TODO: Remove this Groovy version override once Grails 8 is ready to run on Groovy 5
// Override Spring Boot's groovy.version property with Grails' version
// Spring Boot 4.0.1 defaults to Groovy 5.0.3, but Grails 8.0.x uses Groovy 4.0.x
def groovyVersionNode = propertiesNode.'groovy.version'
if (groovyVersionNode) {
groovyVersionNode[0].value = bomDependencyVersions['groovy.version']
} else {
propertiesNode.appendNode('groovy.version', bomDependencyVersions['groovy.version'])
}
}
}
}
2 changes: 1 addition & 1 deletion grails-bootstrap/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ dependencies {

testImplementation 'org.apache.groovy:groovy-test-junit5'
testImplementation 'org.junit.jupiter:junit-jupiter-api'
testImplementation 'org.junit.platform:junit-platform-runner'
testImplementation 'org.junit.platform:junit-platform-suite'

testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'

Expand Down
2 changes: 1 addition & 1 deletion grails-codecs-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ dependencies {

testImplementation 'org.apache.groovy:groovy-test-junit5'
testImplementation 'org.junit.jupiter:junit-jupiter-api'
testImplementation 'org.junit.platform:junit-platform-runner'
testImplementation 'org.junit.platform:junit-platform-suite'

testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'

Expand Down
2 changes: 1 addition & 1 deletion grails-codecs/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ dependencies {

testImplementation 'org.apache.groovy:groovy-test-junit5'
testImplementation 'org.junit.jupiter:junit-jupiter-api'
testImplementation 'org.junit.platform:junit-platform-runner'
testImplementation 'org.junit.platform:junit-platform-suite'

testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'

Expand Down
2 changes: 1 addition & 1 deletion grails-common/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ dependencies {

testImplementation 'org.apache.groovy:groovy-test-junit5'
testImplementation 'org.junit.jupiter:junit-jupiter-api'
testImplementation 'org.junit.platform:junit-platform-runner'
testImplementation 'org.junit.platform:junit-platform-suite'
testImplementation 'org.slf4j:slf4j-simple'
testImplementation 'org.spockframework:spock-core', {
transitive = false
Expand Down
2 changes: 1 addition & 1 deletion grails-console/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ dependencies {

testImplementation 'org.apache.groovy:groovy-test-junit5'
testImplementation 'org.junit.jupiter:junit-jupiter-api'
testImplementation 'org.junit.platform:junit-platform-runner'
testImplementation 'org.junit.platform:junit-platform-suite'

testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'

Expand Down
4 changes: 3 additions & 1 deletion grails-controllers/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ dependencies {

api 'org.apache.groovy:groovy'
api 'org.springframework.boot:spring-boot-autoconfigure'
api 'org.springframework.boot:spring-boot-webmvc'
api 'org.springframework.boot:spring-boot-servlet'
compileOnlyApi 'jakarta.servlet:jakarta.servlet-api'

runtimeOnly project(':grails-i18n')
Expand All @@ -60,7 +62,7 @@ dependencies {

testImplementation 'org.apache.groovy:groovy-test-junit5'
testImplementation 'org.junit.jupiter:junit-jupiter-api'
testImplementation 'org.junit.platform:junit-platform-runner'
testImplementation 'org.junit.platform:junit-platform-suite'

testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.autoconfigure.web.servlet.DispatcherServletRegistrationBean;
import org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration;
import org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration;
import org.springframework.boot.servlet.autoconfigure.HttpEncodingAutoConfiguration;
import org.springframework.boot.servlet.filter.OrderedCharacterEncodingFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.filter.OrderedCharacterEncodingFilter;
import org.springframework.boot.webmvc.autoconfigure.DispatcherServletRegistrationBean;
import org.springframework.boot.webmvc.autoconfigure.WebMvcAutoConfiguration;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.util.ClassUtils;
Expand Down
2 changes: 1 addition & 1 deletion grails-converters/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ dependencies {

testImplementation 'org.apache.groovy:groovy-test-junit5'
testImplementation 'org.junit.jupiter:junit-jupiter-api'
testImplementation 'org.junit.platform:junit-platform-runner'
testImplementation 'org.junit.platform:junit-platform-suite'

testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'

Expand Down
3 changes: 2 additions & 1 deletion grails-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ dependencies {
implementation 'com.github.ben-manes.caffeine:caffeine'
api 'org.apache.groovy:groovy'
api 'org.springframework.boot:spring-boot'
api 'org.springframework.boot:spring-boot-web-server'
api 'org.springframework:spring-core'
api 'org.springframework:spring-tx'
api 'org.springframework:spring-beans'
Expand All @@ -68,7 +69,7 @@ dependencies {

testImplementation 'org.apache.groovy:groovy-test-junit5'
testImplementation 'org.junit.jupiter:junit-jupiter-api'
testImplementation 'org.junit.platform:junit-platform-runner'
testImplementation 'org.junit.platform:junit-platform-suite'

testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'

Expand Down
2 changes: 1 addition & 1 deletion grails-core/src/main/groovy/grails/boot/GrailsApp.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import org.codehaus.groovy.control.CompilationUnit
import org.codehaus.groovy.control.CompilerConfiguration

import org.springframework.boot.SpringApplication
import org.springframework.boot.web.context.WebServerApplicationContext
import org.springframework.boot.web.server.context.WebServerApplicationContext
import org.springframework.context.ConfigurableApplicationContext
import org.springframework.core.env.ConfigurableEnvironment
import org.springframework.core.io.ResourceLoader
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import java.nio.file.Path
import groovy.transform.CompileStatic
import groovy.util.logging.Slf4j

import org.springframework.boot.ConfigurableBootstrapContext
import org.springframework.boot.bootstrap.ConfigurableBootstrapContext
import org.springframework.boot.SpringApplication
import org.springframework.boot.SpringApplicationRunListener
import org.springframework.boot.env.PropertiesPropertySourceLoader
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,9 @@ class ApplicationClassInjector implements GrailsArtefactClassInjector {

public static final String EXCLUDE_MEMBER = 'exclude'
public static final List<String> EXCLUDED_AUTO_CONFIGURE_CLASSES = [
'org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration',
'org.springframework.boot.autoconfigure.reactor.ReactorAutoConfiguration',
'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration'
'org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration',
'org.springframework.boot.reactor.autoconfigure.ReactorAutoConfiguration',
'org.springframework.boot.hibernate.autoconfigure.HibernateJpaAutoConfiguration'
]

ApplicationArtefactHandler applicationArtefactHandler = new ApplicationArtefactHandler()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.SpringApplication
import org.springframework.boot.autoconfigure.EnableAutoConfiguration
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
import org.springframework.boot.hibernate.autoconfigure.HibernateJpaAutoConfiguration
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.ComponentScan

Expand Down
4 changes: 4 additions & 0 deletions grails-data-hibernate5/boot-plugin/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,17 @@ dependencies {
}
api "org.apache.groovy:groovy"
api "org.springframework.boot:spring-boot-autoconfigure"
compileOnly "org.springframework.boot:spring-boot-jdbc"
compileOnly "org.springframework.boot:spring-boot-hibernate"
api project(":grails-data-hibernate5-core")

testImplementation project(':grails-shell-cli'), {
exclude group:'org.apache.groovy', module:'groovy'
}
testImplementation "org.spockframework:spock-core"

testRuntimeOnly "org.springframework.boot:spring-boot-jdbc"
testRuntimeOnly "org.springframework.boot:spring-boot-hibernate"
testRuntimeOnly "org.apache.tomcat:tomcat-jdbc"
testRuntimeOnly "com.h2database:h2"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ import org.springframework.boot.autoconfigure.AutoConfigureBefore
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
import org.springframework.boot.hibernate.autoconfigure.HibernateJpaAutoConfiguration
import org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration
import org.springframework.context.ApplicationContext
import org.springframework.context.ApplicationContextAware
import org.springframework.context.ConfigurableApplicationContext
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@ import grails.gorm.annotation.Entity
import org.springframework.beans.factory.support.DefaultListableBeanFactory
import org.springframework.boot.autoconfigure.AutoConfigurationPackages
import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties
import org.springframework.boot.autoconfigure.jdbc.EmbeddedDataSourceConfiguration
import org.springframework.context.annotation.AnnotationConfigApplicationContext
import org.springframework.context.annotation.Configuration
import org.springframework.context.annotation.Import
Expand Down
4 changes: 4 additions & 0 deletions grails-data-hibernate5/core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ dependencies {
api 'org.apache.groovy:groovy'
api project(':grails-datamapping-core')
api 'org.springframework:spring-orm'
api 'org.springframework:spring-web'
compileOnly 'jakarta.servlet:jakarta.servlet-api'
api "org.hibernate:hibernate-core-jakarta:$hibernate5Version", {
exclude group:'commons-logging', module:'commons-logging'
exclude group:'com.h2database', module:'h2'
Expand Down Expand Up @@ -91,3 +93,5 @@ apply {
from rootProject.layout.projectDirectory.file('gradle/grails-data-tck-config.gradle')
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
}


Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@
import org.hibernate.type.StandardBasicTypes;
import org.hibernate.type.Type;

import org.springframework.orm.hibernate5.SessionHolder;
import org.springframework.transaction.support.TransactionSynchronizationManager;

import org.grails.datastore.mapping.model.PersistentEntity;
Expand All @@ -48,6 +47,7 @@
import org.grails.orm.hibernate.query.AbstractHibernateQuery;
import org.grails.orm.hibernate.query.HibernateProjectionAdapter;
import org.grails.orm.hibernate.query.HibernateQuery;
import org.grails.orm.hibernate.support.hibernate5.SessionHolder;

/**
* <p>Wraps the Hibernate Criteria API in a builder. The builder can be retrieved through the "createCriteria()" dynamic static
Expand Down
Loading
Loading