This is an automated email from the ASF dual-hosted git repository. borinquenkid pushed a commit to branch 8.0.x-hibernate7-dev in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit b7acdb82458dc17b36103bffe5676a24d64ce1a5 Author: Walter Duque de Estrada <[email protected]> AuthorDate: Wed Mar 4 09:04:14 2026 -0600 refactor(hibernate7): fold AbstractHibernateSession into HibernateSession --- .../grails/orm/HibernateCriteriaBuilder.java | 4 +- .../orm/hibernate/AbstractHibernateSession.java | 242 --------------------- .../org/grails/orm/hibernate/HibernateSession.java | 198 ++++++++++++++++- .../hibernate/query/HibernateAssociationQuery.java | 4 +- .../grails/orm/hibernate/query/HibernateQuery.java | 6 +- .../gorm/specs/HibernateGormDatastoreSpec.groovy | 6 +- .../HibernateAssociationQuerySpec.groovy | 4 +- .../specs/hibernatequery/HibernateQuerySpec.groovy | 10 +- 8 files changed, 212 insertions(+), 262 deletions(-) diff --git a/grails-data-hibernate7/core/src/main/groovy/grails/orm/HibernateCriteriaBuilder.java b/grails-data-hibernate7/core/src/main/groovy/grails/orm/HibernateCriteriaBuilder.java index c2ed1d8d83..f157479d7c 100644 --- a/grails-data-hibernate7/core/src/main/groovy/grails/orm/HibernateCriteriaBuilder.java +++ b/grails-data-hibernate7/core/src/main/groovy/grails/orm/HibernateCriteriaBuilder.java @@ -42,7 +42,7 @@ import org.grails.datastore.mapping.query.api.Criteria; import org.grails.datastore.mapping.query.api.ProjectionList; import org.grails.datastore.mapping.query.api.QueryableCriteria; import org.grails.orm.hibernate.HibernateDatastore; -import org.grails.orm.hibernate.AbstractHibernateSession; +import org.grails.orm.hibernate.HibernateSession; import org.grails.orm.hibernate.GrailsHibernateTemplate; import org.grails.orm.hibernate.query.HibernateQuery; import org.hibernate.FetchMode; @@ -147,7 +147,7 @@ public class HibernateCriteriaBuilder extends GroovyObjectSupport setDatastore(datastore); this.sessionFactory = sessionFactory; this.cb = sessionFactory.getCriteriaBuilder(); - AbstractHibernateSession session = (AbstractHibernateSession) datastore.connect(); + HibernateSession session = (HibernateSession) datastore.connect(); hibernateQuery = new HibernateQuery( session, datastore.getMappingContext().getPersistentEntity(targetClass.getTypeName())); diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/AbstractHibernateSession.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/AbstractHibernateSession.java deleted file mode 100644 index c95cfe30bd..0000000000 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/AbstractHibernateSession.java +++ /dev/null @@ -1,242 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.grails.orm.hibernate; - -import jakarta.persistence.FlushModeType; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; -import org.grails.datastore.mapping.core.AbstractAttributeStoringSession; -import org.grails.datastore.mapping.core.Datastore; -import org.grails.datastore.mapping.engine.Persister; -import org.grails.datastore.mapping.model.MappingContext; -import org.grails.datastore.mapping.query.api.QueryAliasAwareSession; -import org.grails.datastore.mapping.transactions.Transaction; -import org.hibernate.LockMode; -import org.hibernate.Session; -import org.hibernate.SessionFactory; -import org.springframework.transaction.TransactionDefinition; -import org.springframework.transaction.support.TransactionSynchronizationManager; - -/** - * Session implementation that wraps a Hibernate {@link Session}. - * - * @author Graeme Rocher - * @since 1.0 - */ -@SuppressWarnings("rawtypes") -public abstract class AbstractHibernateSession extends AbstractAttributeStoringSession - implements QueryAliasAwareSession { - - /** The datastore. */ - protected HibernateDatastore datastore; - - /** The connected. */ - protected boolean connected = true; - - /** The hibernate template. */ - protected IHibernateTemplate hibernateTemplate; - - /** Creates a new {@link AbstractHibernateSession} instance. */ - protected AbstractHibernateSession( - HibernateDatastore hibernateDatastore, SessionFactory sessionFactory) { - datastore = hibernateDatastore; - } - - @Override - public boolean isSchemaless() { - return false; - } - - public Serializable insert(Object o) { - return persist(o); - } - - @Override - public boolean isConnected() { - return connected; - } - - @Override - public void disconnect() { - connected = false; // don't actually do any disconnection here. This will be handled by OSVI - } - - public Transaction beginTransaction() { - throw new UnsupportedOperationException("Use HibernatePlatformTransactionManager instead"); - } - - @Override - public Transaction beginTransaction(TransactionDefinition definition) { - throw new UnsupportedOperationException("Use HibernatePlatformTransactionManager instead"); - } - - public MappingContext getMappingContext() { - return getDatastore().getMappingContext(); - } - - public Serializable persist(Object o) { - hibernateTemplate.persist(o); - try { - // Try to obtain identifier via mapping context reflectors - MappingContext ctx = getDatastore().getMappingContext(); - org.grails.datastore.mapping.model.PersistentEntity pe = - ctx.getPersistentEntity(o.getClass().getName()); - if (pe != null) { - Object id = ctx.getEntityReflector(pe).getIdentifier(o); - return id == null ? null : (Serializable) id; - } - } catch (Exception ignored) { - // ignore and return null when identifier cannot be obtained - } - return null; - } - - /** - * Merge the given instance state into the current persistence context and return the managed - * instance. - */ - public Object merge(Object o) { - return hibernateTemplate.merge(o); - } - - public void refresh(Object o) { - hibernateTemplate.refresh(o); - } - - public void attach(Object o) { - hibernateTemplate.lock(o, LockMode.NONE); - } - - public void flush() { - hibernateTemplate.flush(); - } - - public void clear() { - hibernateTemplate.clear(); - } - - public void clear(Object o) { - hibernateTemplate.evict(o); - } - - public boolean contains(Object o) { - return hibernateTemplate.contains(o); - } - - public void lock(Object o) { - hibernateTemplate.lock(o, LockMode.PESSIMISTIC_WRITE); - } - - public void unlock(Object o) { - // do nothing - } - - /** - * @deprecated persist method needs to be changed to void - * @param objects The Objects - * @return the result - */ - @Deprecated() - public List<Serializable> persist(Iterable objects) { - List<Serializable> ids = new ArrayList<>(); - for (Object object : objects) { - Serializable id = persist(object); - ids.add(id); - } - return ids; - } - - public <T> T retrieve(Class<T> type, Serializable key) { - return hibernateTemplate.get(type, key); - } - - public <T> T proxy(Class<T> type, Serializable key) { - return hibernateTemplate.load(type, key); - } - - public <T> T lock(Class<T> type, Serializable key) { - return hibernateTemplate.get(type, key, LockMode.PESSIMISTIC_WRITE); - } - - public void delete(Iterable objects) { - Collection list = getIterableAsCollection(objects); - hibernateTemplate.deleteAll(list); - } - - /** TODO: Add description. */ - @SuppressWarnings("unchecked") - protected Collection getIterableAsCollection(Iterable objects) { - Collection list; - if (objects instanceof Collection) { - list = (Collection) objects; - } else { - list = new ArrayList(); - for (Object object : objects) { - list.add(object); - } - } - return list; - } - - public void delete(Object obj) { - hibernateTemplate.remove(obj); - } - - public List retrieveAll(Class type, Serializable... keys) { - return retrieveAll(type, Arrays.asList(keys)); - } - - public Persister getPersister(Object o) { - return null; - } - - public Transaction getTransaction() { - throw new UnsupportedOperationException("Use HibernatePlatformTransactionManager instead"); - } - - @Override - public boolean hasTransaction() { - Object resource = - TransactionSynchronizationManager.getResource(hibernateTemplate.getSessionFactory()); - return resource != null; - } - - public Datastore getDatastore() { - return datastore; - } - - public boolean isDirty(Object o) { - // not used, Hibernate manages dirty checking itself - return true; - } - - public Object getNativeInterface() { - return hibernateTemplate; - } - - @Override - public void setSynchronizedWithTransaction(boolean synchronizedWithTransaction) { - // no-op - } - - public abstract FlushModeType getFlushMode(); -} diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateSession.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateSession.java index 41fb238413..32f36b2a71 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateSession.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateSession.java @@ -23,27 +23,38 @@ import jakarta.persistence.criteria.CriteriaBuilder; import jakarta.persistence.criteria.CriteriaQuery; import jakarta.persistence.criteria.Root; import java.io.Serializable; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; import org.grails.datastore.gorm.timestamp.DefaultTimestampProvider; +import org.grails.datastore.mapping.core.AbstractAttributeStoringSession; +import org.grails.datastore.mapping.core.Datastore; +import org.grails.datastore.mapping.engine.Persister; +import org.grails.datastore.mapping.model.MappingContext; import org.grails.datastore.mapping.model.PersistentEntity; import org.grails.datastore.mapping.model.PersistentProperty; import org.grails.datastore.mapping.model.config.GormProperties; import org.grails.datastore.mapping.proxy.ProxyHandler; import org.grails.datastore.mapping.query.Query; +import org.grails.datastore.mapping.query.api.QueryAliasAwareSession; import org.grails.datastore.mapping.query.api.QueryableCriteria; import org.grails.datastore.mapping.query.event.PostQueryEvent; import org.grails.datastore.mapping.query.event.PreQueryEvent; import org.grails.datastore.mapping.query.jpa.JpaQueryBuilder; import org.grails.datastore.mapping.query.jpa.JpaQueryInfo; import org.grails.datastore.mapping.reflect.ClassPropertyFetcher; +import org.grails.datastore.mapping.transactions.Transaction; import org.grails.orm.hibernate.proxy.HibernateProxyHandler; import org.grails.orm.hibernate.query.HibernateHqlQuery; import org.grails.orm.hibernate.query.HibernateQuery; import org.hibernate.*; import org.hibernate.proxy.HibernateProxy; import org.springframework.context.ApplicationEventPublisher; +import org.springframework.transaction.TransactionDefinition; +import org.springframework.transaction.support.TransactionSynchronizationManager; /** * Session implementation that wraps a Hibernate {@link org.hibernate.Session}. @@ -52,15 +63,24 @@ import org.springframework.context.ApplicationEventPublisher; * @since 1.0 */ @SuppressWarnings({"rawtypes", "PMD.DataflowAnomalyAnalysis", "PMD.AvoidDuplicateLiterals"}) -public class HibernateSession extends AbstractHibernateSession { +public class HibernateSession extends AbstractAttributeStoringSession + implements QueryAliasAwareSession { + + /** The datastore. */ + protected HibernateDatastore datastore; + + /** The connected. */ + protected boolean connected = true; + + /** The hibernate template. */ + protected IHibernateTemplate hibernateTemplate; ProxyHandler proxyHandler = new HibernateProxyHandler(); DefaultTimestampProvider timestampProvider; public HibernateSession( HibernateDatastore hibernateDatastore, SessionFactory sessionFactory, int defaultFlushMode) { - super(hibernateDatastore, sessionFactory); - + datastore = hibernateDatastore; hibernateTemplate = new GrailsHibernateTemplate(sessionFactory, (HibernateDatastore) getDatastore()); } @@ -69,6 +89,177 @@ public class HibernateSession extends AbstractHibernateSession { this(hibernateDatastore, sessionFactory, hibernateDatastore.getDefaultFlushMode()); } + @Override + public boolean isSchemaless() { + return false; + } + + public Serializable insert(Object o) { + return persist(o); + } + + @Override + public boolean isConnected() { + return connected; + } + + @Override + public void disconnect() { + connected = false; // don't actually do any disconnection here. This will be handled by OSVI + } + + public Transaction beginTransaction() { + throw new UnsupportedOperationException("Use HibernatePlatformTransactionManager instead"); + } + + @Override + public Transaction beginTransaction(TransactionDefinition definition) { + throw new UnsupportedOperationException("Use HibernatePlatformTransactionManager instead"); + } + + public MappingContext getMappingContext() { + return getDatastore().getMappingContext(); + } + + public Serializable persist(Object o) { + hibernateTemplate.persist(o); + try { + MappingContext ctx = getDatastore().getMappingContext(); + org.grails.datastore.mapping.model.PersistentEntity pe = + ctx.getPersistentEntity(o.getClass().getName()); + if (pe != null) { + Object id = ctx.getEntityReflector(pe).getIdentifier(o); + return id == null ? null : (Serializable) id; + } + } catch (Exception ignored) { + // ignore and return null when identifier cannot be obtained + } + return null; + } + + public Object merge(Object o) { + return hibernateTemplate.merge(o); + } + + public void refresh(Object o) { + hibernateTemplate.refresh(o); + } + + public void attach(Object o) { + hibernateTemplate.lock(o, LockMode.NONE); + } + + public void flush() { + hibernateTemplate.flush(); + } + + public void clear() { + hibernateTemplate.clear(); + } + + public void clear(Object o) { + hibernateTemplate.evict(o); + } + + public boolean contains(Object o) { + return hibernateTemplate.contains(o); + } + + public void lock(Object o) { + hibernateTemplate.lock(o, LockMode.PESSIMISTIC_WRITE); + } + + public void unlock(Object o) { + // do nothing + } + + /** + * @deprecated persist method needs to be changed to void + * @param objects The Objects + * @return the result + */ + @Deprecated + public List<Serializable> persist(Iterable objects) { + List<Serializable> ids = new ArrayList<>(); + for (Object object : objects) { + Serializable id = persist(object); + ids.add(id); + } + return ids; + } + + public <T> T retrieve(Class<T> type, Serializable key) { + return hibernateTemplate.get(type, key); + } + + public <T> T proxy(Class<T> type, Serializable key) { + return hibernateTemplate.load(type, key); + } + + public <T> T lock(Class<T> type, Serializable key) { + return hibernateTemplate.get(type, key, LockMode.PESSIMISTIC_WRITE); + } + + public void delete(Iterable objects) { + Collection list = getIterableAsCollection(objects); + hibernateTemplate.deleteAll(list); + } + + @SuppressWarnings("unchecked") + protected Collection getIterableAsCollection(Iterable objects) { + Collection list; + if (objects instanceof Collection) { + list = (Collection) objects; + } else { + list = new ArrayList(); + for (Object object : objects) { + list.add(object); + } + } + return list; + } + + public void delete(Object obj) { + hibernateTemplate.remove(obj); + } + + public List retrieveAll(Class type, Serializable... keys) { + return retrieveAll(type, Arrays.asList(keys)); + } + + public Persister getPersister(Object o) { + return null; + } + + public Transaction getTransaction() { + throw new UnsupportedOperationException("Use HibernatePlatformTransactionManager instead"); + } + + @Override + public boolean hasTransaction() { + Object resource = + TransactionSynchronizationManager.getResource(hibernateTemplate.getSessionFactory()); + return resource != null; + } + + public Datastore getDatastore() { + return datastore; + } + + public boolean isDirty(Object o) { + // not used, Hibernate manages dirty checking itself + return true; + } + + public Object getNativeInterface() { + return hibernateTemplate; + } + + @Override + public void setSynchronizedWithTransaction(boolean synchronizedWithTransaction) { + // no-op + } + @Override @SuppressWarnings("PMD.DataflowAnomalyAnalysis") public Serializable getObjectIdentifier(Object instance) { @@ -241,3 +432,4 @@ public class HibernateSession extends AbstractHibernateSession { } } } + diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateAssociationQuery.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateAssociationQuery.java index 5deac25543..346e7e1ff7 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateAssociationQuery.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateAssociationQuery.java @@ -23,7 +23,7 @@ import org.grails.datastore.mapping.model.PersistentEntity; import org.grails.datastore.mapping.model.types.Association; import org.grails.datastore.mapping.query.AssociationQuery; import org.grails.datastore.mapping.query.Query; -import org.grails.orm.hibernate.AbstractHibernateSession; +import org.grails.orm.hibernate.HibernateSession; /** * A thin wrapper over {@link HibernateQuery} that collects criteria for a single association scope. @@ -50,7 +50,7 @@ public class HibernateAssociationQuery extends AssociationQuery { private final HibernateQuery innerQuery; public HibernateAssociationQuery( - AbstractHibernateSession session, + HibernateSession session, PersistentEntity associatedEntity, Association association, String associationPath, diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateQuery.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateQuery.java index 60fa4a5386..3ffdc015b1 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateQuery.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateQuery.java @@ -34,7 +34,7 @@ import org.grails.datastore.mapping.query.AssociationQuery; import org.grails.datastore.mapping.query.Projections; import org.grails.datastore.mapping.query.Query; import org.grails.datastore.mapping.query.api.QueryableCriteria; -import org.grails.orm.hibernate.AbstractHibernateSession; +import org.grails.orm.hibernate.HibernateSession; import org.grails.orm.hibernate.GrailsHibernateTemplate; import org.grails.orm.hibernate.HibernateSession; import org.grails.orm.hibernate.IHibernateTemplate; @@ -74,7 +74,7 @@ public class HibernateQuery extends Query { private FlushMode flushMode; private Boolean readOnly; - public HibernateQuery(AbstractHibernateSession session, PersistentEntity entity) { + public HibernateQuery(HibernateSession session, PersistentEntity entity) { super(session, entity); this.detachedCriteria = new DetachedCriteria(entity.getJavaClass()); } @@ -318,7 +318,7 @@ public class HibernateQuery extends Query { String alias = generateAlias(associationName); CriteriaAndAlias subCriteria = getOrCreateAlias(associationName, alias); return new HibernateAssociationQuery( - (AbstractHibernateSession) getSession(), + (HibernateSession) getSession(), association.getAssociatedEntity(), association, subCriteria.associationPath, diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/HibernateGormDatastoreSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/HibernateGormDatastoreSpec.groovy index 3420f42423..8a25ef1e4f 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/HibernateGormDatastoreSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/HibernateGormDatastoreSpec.groovy @@ -3,7 +3,7 @@ package grails.gorm.specs import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec import org.grails.datastore.mapping.model.PersistentEntity -import org.grails.orm.hibernate.AbstractHibernateSession +import org.grails.orm.hibernate.HibernateSession import org.grails.orm.hibernate.HibernateDatastore import org.grails.orm.hibernate.cfg.domainbinding.binder.GrailsDomainBinder import org.grails.orm.hibernate.cfg.domainbinding.hibernate.GrailsHibernatePersistentEntity @@ -135,8 +135,8 @@ class HibernateGormDatastoreSpec extends GrailsDataTckSpec<GrailsDataHibernate7T } - protected AbstractHibernateSession getSession() { - datastore.connect() as AbstractHibernateSession + protected HibernateSession getSession() { + datastore.connect() as HibernateSession } protected PersistentEntity getPersistentEntity(Class clazz) { diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/hibernatequery/HibernateAssociationQuerySpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/hibernatequery/HibernateAssociationQuerySpec.groovy index f01f20eb85..65156bf844 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/hibernatequery/HibernateAssociationQuerySpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/hibernatequery/HibernateAssociationQuerySpec.groovy @@ -23,7 +23,7 @@ import org.apache.grails.data.testing.tck.domains.Person import org.apache.grails.data.testing.tck.domains.Pet import org.grails.datastore.mapping.query.AssociationQuery import org.grails.datastore.mapping.query.Query -import org.grails.orm.hibernate.AbstractHibernateSession +import org.grails.orm.hibernate.HibernateSession import org.grails.orm.hibernate.HibernateDatastore import org.grails.orm.hibernate.query.HibernateAssociationQuery import org.grails.orm.hibernate.query.HibernateQuery @@ -39,7 +39,7 @@ class HibernateAssociationQuerySpec extends HibernateGormDatastoreSpec { def setup() { HibernateDatastore hibernateDatastore = manager.hibernateDatastore - AbstractHibernateSession session = hibernateDatastore.connect() as AbstractHibernateSession + HibernateSession session = hibernateDatastore.connect() as HibernateSession personQuery = new HibernateQuery(session, hibernateDatastore.getMappingContext().getPersistentEntity(Person.typeName)) bob = new Person(firstName: "Bob", lastName: "Builder", age: 50).save(flush: true) new Pet(name: "Lucky", age: 3, owner: bob).save(flush: true) diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/hibernatequery/HibernateQuerySpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/hibernatequery/HibernateQuerySpec.groovy index d97fc5f0b4..09de989d4d 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/hibernatequery/HibernateQuerySpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/hibernatequery/HibernateQuerySpec.groovy @@ -10,7 +10,7 @@ import jakarta.persistence.criteria.Subquery import org.apache.grails.data.testing.tck.domains.* import org.grails.datastore.mapping.engine.event.PersistEvent import org.grails.datastore.mapping.query.Query -import org.grails.orm.hibernate.AbstractHibernateSession +import org.grails.orm.hibernate.HibernateSession import org.grails.orm.hibernate.HibernateDatastore import org.grails.orm.hibernate.query.HibernateQuery import org.hibernate.query.criteria.JpaPredicate @@ -31,7 +31,7 @@ class HibernateQuerySpec extends HibernateGormDatastoreSpec { def persister = sessionFactory.getMappingMetamodel().getEntityDescriptor(Person) println "Person ID generator: ${persister.getGenerator().class.name}" HibernateDatastore hibernateDatastore = manager.hibernateDatastore - AbstractHibernateSession session = hibernateDatastore.connect() as AbstractHibernateSession + HibernateSession session = hibernateDatastore.connect() as HibernateSession hibernateQuery = new HibernateQuery(session, hibernateDatastore.getMappingContext().getPersistentEntity(Person.typeName)) petHibernateQuery = new HibernateQuery(session, hibernateDatastore.getMappingContext().getPersistentEntity(Pet.typeName)) eagerHibernateQuery = new HibernateQuery(session, hibernateDatastore.getMappingContext().getPersistentEntity(EagerOwner.typeName)) @@ -527,7 +527,7 @@ class HibernateQuerySpec extends HibernateGormDatastoreSpec { def betweenBigDecimal() { given: HibernateDatastore hibernateDatastore = manager.hibernateDatastore - AbstractHibernateSession session = hibernateDatastore.connect() as AbstractHibernateSession + HibernateSession session = hibernateDatastore.connect() as HibernateSession HibernateQuery query = new HibernateQuery(session, hibernateDatastore.getMappingContext().getPersistentEntity(BigDecimalEntity.typeName)) new BigDecimalEntity(amount: 10.5G).save(flush: true, failOnError: true) new BigDecimalEntity(amount: 20.5G).save(flush: true, failOnError: true) @@ -700,7 +700,7 @@ class HibernateQuerySpec extends HibernateGormDatastoreSpec { def sumBigDecimal() { given: HibernateDatastore hibernateDatastore = manager.hibernateDatastore - AbstractHibernateSession session = hibernateDatastore.connect() as AbstractHibernateSession + HibernateSession session = hibernateDatastore.connect() as HibernateSession HibernateQuery query = new HibernateQuery(session, hibernateDatastore.getMappingContext().getPersistentEntity(BigDecimalEntity.typeName)) new BigDecimalEntity(amount: 100.0G).save(flush: true, failOnError: true) new BigDecimalEntity(amount: 200.0G).save(flush: true, failOnError: true) @@ -717,7 +717,7 @@ class HibernateQuerySpec extends HibernateGormDatastoreSpec { def avgBigDecimal() { given: HibernateDatastore hibernateDatastore = manager.hibernateDatastore - AbstractHibernateSession session = hibernateDatastore.connect() as AbstractHibernateSession + HibernateSession session = hibernateDatastore.connect() as HibernateSession HibernateQuery query = new HibernateQuery(session, hibernateDatastore.getMappingContext().getPersistentEntity(BigDecimalEntity.typeName)) new BigDecimalEntity(amount: 100.0G).save(flush: true, failOnError: true) new BigDecimalEntity(amount: 200.0G).save(flush: true, failOnError: true)
