This is an automated email from the ASF dual-hosted git repository. borinquenkid pushed a commit to branch 7.1.x-hibernate6 in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 241f5a8a3e12000da2912c58e5c1804ca260b549 Author: Walter Duque de Estrada <[email protected]> AuthorDate: Fri Oct 17 21:47:12 2025 -0500 Fixed HibernateEntityTransformation --- .../compiler/HibernateEntityTransformation.groovy | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/compiler/HibernateEntityTransformation.groovy b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/compiler/HibernateEntityTransformation.groovy index 2b0df86bc2..bd837b1975 100644 --- a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/compiler/HibernateEntityTransformation.groovy +++ b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/compiler/HibernateEntityTransformation.groovy @@ -237,6 +237,39 @@ class HibernateEntityTransformation implements ASTTransformation, CompilationUni AnnotatedNodeUtils.markAsGenerated(classNode, setNextManagedEntityMethod) staticCompilationVisitor.visitMethod(setNextManagedEntityMethod) + // add field: boolean $$_hibernate_useTracker + String useTrackerFieldName = '$$_hibernate_useTracker' + FieldNode useTrackerField = classNode.addField(useTrackerFieldName, Modifier.PRIVATE | Modifier.TRANSIENT, ClassHelper.boolean_TYPE, constX(false)) + useTrackerField + .addAnnotation(transientAnnotationNode) + + // add method: boolean $$_hibernate_useTracker() + def useTrackerGetter = new MethodNode( + '$$_hibernate_useTracker', + Modifier.PUBLIC, + ClassHelper.boolean_TYPE, + AstUtils.ZERO_PARAMETERS, + null, + returnS(varX(useTrackerField)) + ) + classNode.addMethod(useTrackerGetter) + AnnotatedNodeUtils.markAsGenerated(classNode, useTrackerGetter) + staticCompilationVisitor.visitMethod(useTrackerGetter) + + // add method: void $$_hibernate_setUseTracker(boolean useTracker) + def useTrackerParam = param(ClassHelper.boolean_TYPE, 'useTracker') + def useTrackerSetter = new MethodNode( + '$$_hibernate_setUseTracker', + Modifier.PUBLIC, + ClassHelper.VOID_TYPE, + params(useTrackerParam), + null, + assignS(varX(useTrackerField), varX(useTrackerParam)) + ) + classNode.addMethod(useTrackerSetter) + AnnotatedNodeUtils.markAsGenerated(classNode, useTrackerSetter) + staticCompilationVisitor.visitMethod(useTrackerSetter) + List<MethodNode> allMethods = classNode.getMethods() for(MethodNode methodNode in allMethods) { if(methodNode.getAnnotations(ClassHelper.make(DirtyCheckedProperty))) {
