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 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()) )); } }