From 508e47abb57bc5f9ec2a7f4d31e94c88b5b466ad Mon Sep 17 00:00:00 2001 From: Puneet Behl Date: Fri, 17 Dec 2021 22:37:27 +0530 Subject: [PATCH 1/2] Fix problem with tenantId part of Composite identifier Fixes #450 --- .../groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grails-datastore-gorm-hibernate5/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java b/grails-datastore-gorm-hibernate5/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java index 16aff703..533b8f00 100644 --- a/grails-datastore-gorm-hibernate5/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java +++ b/grails-datastore-gorm-hibernate5/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java @@ -1443,7 +1443,7 @@ protected void addMultiTenantFilterIfNecessary( mappings.addFilterDefinition(new FilterDefinition( GormProperties.TENANT_IDENTITY, filterCondition, - Collections.singletonMap(GormProperties.TENANT_IDENTITY, persistentClass.getProperty(tenantId.getName()).getType()) + Collections.singletonMap(GormProperties.TENANT_IDENTITY, getProperty(persistentClass, tenantId.getName()).getType()) )); } } From 4c432586bd61022e3af4bef3681c5695b166dd38 Mon Sep 17 00:00:00 2001 From: Sergio del Amo Date: Wed, 22 Dec 2021 10:26:17 +0100 Subject: [PATCH 2/2] add multitenant with composite --- .../grails-app/conf/application.yml | 5 +++++ .../domain/example/MultitenantBook.groovy | 15 +++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 examples/grails-data-service/grails-app/domain/example/MultitenantBook.groovy diff --git a/examples/grails-data-service/grails-app/conf/application.yml b/examples/grails-data-service/grails-app/conf/application.yml index f4535042..1f0743df 100644 --- a/examples/grails-data-service/grails-app/conf/application.yml +++ b/examples/grails-data-service/grails-app/conf/application.yml @@ -1,3 +1,8 @@ +grails: + gorm: + multiTenancy: + mode: DISCRIMINATOR + tenantResolverClass: org.grails.datastore.mapping.multitenancy.web.SessionTenantResolver --- grails: profile: rest-api diff --git a/examples/grails-data-service/grails-app/domain/example/MultitenantBook.groovy b/examples/grails-data-service/grails-app/domain/example/MultitenantBook.groovy new file mode 100644 index 00000000..c5629380 --- /dev/null +++ b/examples/grails-data-service/grails-app/domain/example/MultitenantBook.groovy @@ -0,0 +1,15 @@ +package example + +import grails.gorm.MultiTenant + +// Issue: https://github.com/grails/gorm-hibernate5/issues/450 +// Pr: https://github.com/grails/gorm-hibernate5/pull/451 +class MultitenantBook implements MultiTenant, Serializable { + String id + String tenantId + String title + + static mapping = { + id composite: ['id', 'tenantId'] + } +} \ No newline at end of file