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/03/09 18:04:52 UTC
(grails-core) 20/34: hibernate7: more Codenarc
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 03aaad881355ea0939b14850238488670d061064
Author: Walter Duque de Estrada <wb...@mac.com>
AuthorDate: Sat Mar 7 13:03:00 2026 -0600
hibernate7: more Codenarc
---
.../hibernate/HibernateMappingBuilder.groovy | 5 +-
.../hibernate/HibernateMappingKeyword.groovy | 75 ++++++++++++++++++++++
.../mapping/HibernateMappingBuilderTests.groovy | 20 +++---
3 files changed, 90 insertions(+), 10 deletions(-)
diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateMappingBuilder.groovy b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateMappingBuilder.groovy
index 1ecfed48dd..8ad9b0fd05 100644
--- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateMappingBuilder.groovy
+++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateMappingBuilder.groovy
@@ -462,9 +462,10 @@ class HibernateMappingBuilder implements MappingConfigurationBuilder<Mapping, Pr
Object firstArg = hasArgs ? argsArray[0] : null
Object lastArg = argc > 0 ? argsArray[argc - 1] : null
- if (name == 'user-type' && hasArgs && firstArg instanceof Map) {
+ HibernateMappingKeyword keyword = HibernateMappingKeyword.fromString(name)
+ if (keyword == HibernateMappingKeyword.USER_TYPE && hasArgs && firstArg instanceof Map) {
hibernateCustomUserType((Map<String, Object>) firstArg)
- } else if (name == 'importFrom' && hasArgs && firstArg instanceof Class) {
+ } else if (keyword == HibernateMappingKeyword.IMPORT_FROM && hasArgs && firstArg instanceof Class) {
List<Closure> constraintsToImport = ClassPropertyFetcher.getStaticPropertyValuesFromInheritanceHierarchy(
(Class) firstArg, GormProperties.CONSTRAINTS, Closure)
if (constraintsToImport) {
diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateMappingKeyword.groovy b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateMappingKeyword.groovy
new file mode 100644
index 0000000000..c745f28605
--- /dev/null
+++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateMappingKeyword.groovy
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2024 the original author or authors.
+ *
+ * Licensed 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
+ *
+ * http://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.cfg.domainbinding.hibernate
+
+import groovy.transform.CompileStatic
+
+/**
+ * Enum representing the supported keywords in the Hibernate ORM mapping DSL.
+ *
+ * @author walter.duquedeestrada
+ * @since 7.0
+ */
+@CompileStatic
+enum HibernateMappingKeyword {
+ INCLUDES('includes'),
+ HIBERNATE_CUSTOM_USER_TYPE('hibernateCustomUserType'),
+ TABLE('table'),
+ DISCRIMINATOR('discriminator'),
+ AUTO_IMPORT('autoImport'),
+ SORT('sort'),
+ AUTOWIRE('autowire'),
+ DYNAMIC_UPDATE('dynamicUpdate'),
+ DYNAMIC_INSERT('dynamicInsert'),
+ BATCH_SIZE('batchSize'),
+ ORDER('order'),
+ AUTO_TIMESTAMP('autoTimestamp'),
+ VERSION('version'),
+ TENANT_ID('tenantId'),
+ CACHE('cache'),
+ TABLE_PER_HIERARCHY('tablePerHierarchy'),
+ TABLE_PER_SUBCLASS('tablePerSubclass'),
+ TABLE_PER_CONCRETE_CLASS('tablePerConcreteClass'),
+ ID('id'),
+ PROPERTY('property'),
+ COLUMNS('columns'),
+ DATASOURCE('datasource'),
+ DATASOURCES('datasources'),
+ COMMENT('comment'),
+ USER_TYPE('user-type'),
+ IMPORT_FROM('importFrom')
+
+ private final String keyword
+
+ HibernateMappingKeyword(String keyword) {
+ this.keyword = keyword
+ }
+
+ String getKeyword() {
+ return keyword
+ }
+
+ @Override
+ String toString() {
+ return keyword
+ }
+
+ private static final Map<String, HibernateMappingKeyword> KEYWORDS = values().collectEntries { [it.keyword, it] }
+
+ static HibernateMappingKeyword fromString(String name) {
+ return KEYWORDS[name]
+ }
+}
diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/hibernate/mapping/HibernateMappingBuilderTests.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/hibernate/mapping/HibernateMappingBuilderTests.groovy
index 2e34e104fa..efa5a72013 100644
--- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/hibernate/mapping/HibernateMappingBuilderTests.groovy
+++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/hibernate/mapping/HibernateMappingBuilderTests.groovy
@@ -18,6 +18,8 @@
*/
package grails.gorm.hibernate.mapping
+import java.sql.Clob
+
import org.grails.orm.hibernate.cfg.CompositeIdentity
import org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernateMappingBuilder
import org.grails.orm.hibernate.cfg.PropertyConfig
@@ -658,11 +660,13 @@ class HibernateMappingBuilderTests {
version false
id composite:['one','two'], compositeClass:HibernateMappingBuilder
}
+ def compositeId = mapping.identity
+
+ assert compositeId instanceof CompositeIdentity
- assert mapping.identity instanceof CompositeIdentity
- assertEquals "one", mapping.identity.propertyNames[0]
- assertEquals "two", mapping.identity.propertyNames[1]
- assertEquals HibernateMappingBuilder, mapping.identity.compositeClass
+ assertEquals( "one", compositeId.propertyNames[0])
+ assertEquals "two", compositeId.propertyNames[1]
+ assertEquals HibernateMappingBuilder, compositeId.compositeClass
}
@Test
@@ -705,7 +709,7 @@ class HibernateMappingBuilderTests {
firstName column:'First_Name',
lazy:true,
unique:true,
- type: java.sql.Clob,
+ type: Clob,
length:255,
index:'foo',
sqlType: 'text'
@@ -717,7 +721,7 @@ class HibernateMappingBuilderTests {
assertEquals "First_Name",mapping.columns.firstName.column
assertTrue mapping.columns.firstName.lazy
assertTrue mapping.columns.firstName.unique
- assertEquals java.sql.Clob,mapping.columns.firstName.type
+ assertEquals Clob,mapping.columns.firstName.type
assertEquals 255,mapping.columns.firstName.length
assertEquals 'foo',mapping.columns.firstName.getIndexName()
assertEquals "text",mapping.columns.firstName.sqlType
@@ -733,7 +737,7 @@ class HibernateMappingBuilderTests {
firstName column:'First_Name',
lazy:true,
unique:true,
- type: java.sql.Clob,
+ type: Clob,
length:255,
index:'foo',
sqlType: 'text'
@@ -744,7 +748,7 @@ class HibernateMappingBuilderTests {
assertEquals "First_Name",mapping.columns.firstName.column
assertTrue mapping.columns.firstName.lazy
assertTrue mapping.columns.firstName.unique
- assertEquals java.sql.Clob,mapping.columns.firstName.type
+ assertEquals Clob,mapping.columns.firstName.type
assertEquals 255,mapping.columns.firstName.length
assertEquals 'foo',mapping.columns.firstName.getIndexName()
assertEquals "text",mapping.columns.firstName.sqlType