You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by bo...@apache.org on 2026/02/24 01:40:19 UTC
(grails-core) 07/09: fix compile dynamic
This is an automated email from the ASF dual-hosted git repository.
borinquenkid pushed a commit to branch 8.0.x-hibernate7
in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 9e86b7396f116ae8f5140c516d3c2f476c6bbd21
Author: Walter Duque de Estrada <wb...@mac.com>
AuthorDate: Mon Feb 23 18:54:40 2026 -0600
fix compile dynamic
---
.../orm/hibernate/HibernateGormStaticApi.groovy | 34 ++++++++++------------
1 file changed, 15 insertions(+), 19 deletions(-)
diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateGormStaticApi.groovy b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateGormStaticApi.groovy
index 08401d17f1..ad81338df5 100644
--- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateGormStaticApi.groovy
+++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateGormStaticApi.groovy
@@ -15,6 +15,9 @@
*/
package org.grails.orm.hibernate
+import org.grails.datastore.mapping.model.PersistentProperty
+import org.hibernate.query.criteria.JpaRoot
+
import grails.orm.HibernateCriteriaBuilder
import groovy.transform.CompileDynamic
import groovy.transform.CompileStatic
@@ -431,32 +434,25 @@ class HibernateGormStaticApi<D> extends GormStaticApi<D> {
getAllInternal(ids as List)
}
- @CompileDynamic
- private List getAllInternal(List ids) {
+ private List<D> getAllInternal(List ids) {
if (!ids) return []
- (List)hibernateTemplate.execute { Session session ->
- def identityType = persistentEntity.identity.type
- def identityName = persistentEntity.identity.name
- List<Object> convertedIds = ids.collect { HibernateRuntimeUtils.convertValueToType((Serializable)it, identityType, conversionService) }
+ hibernateTemplate.execute { Session session ->
+ PersistentProperty identity = persistentEntity.identity
+ Class<?> identityType = identity.type
+ String identityName = identity.name
+ List<Object> convertedIds = ids.collect { HibernateRuntimeUtils.convertValueToType(it, identityType, conversionService) }
CriteriaBuilder cb = session.getCriteriaBuilder()
- CriteriaQuery cq = cb.createQuery(persistentEntity.javaClass)
- def root = cq.from(persistentEntity.javaClass)
+ CriteriaQuery<D> cq = cb.createQuery((Class<D>)persistentEntity.javaClass)
+ Root<D> root = cq.from((Class<D>)persistentEntity.javaClass)
cq.select(root).where(root.get("id").in(convertedIds))
firePreQueryEvent()
- List results = session.createQuery(cq).resultList
+ List<D> results = session.createQuery(cq).resultList
firePostQueryEvent(results)
- def idsMap = [:]
- for (object in results) {
- idsMap[object[identityName]] = object
- }
- results.clear()
- for (id in ids) {
- results << idsMap[id]
- }
- results
- }
+ Map<Object, D> idsMap = results.collectEntries { [it[identityName], it] }
+ ids.collect { idsMap[it] }
+ } as List<D>
}