Here are the examples of the java api org.grails.datastore.mapping.model.types.TenantId taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
1 Examples
18
View Complete Implementation : MultiTenantEventListener.java
Copyright Apache License 2.0
Author : grails
Copyright Apache License 2.0
Author : grails
@Override
public void onApplicationEvent(ApplicationEvent event) {
if (supportsEventType(event.getClreplaced())) {
Datastore hibernateDatastore = (Datastore) event.getSource();
if (event instanceof PreQueryEvent) {
PreQueryEvent preQueryEvent = (PreQueryEvent) event;
Query query = preQueryEvent.getQuery();
PersistentEnreplacedy enreplacedy = query.getEnreplacedy();
if (enreplacedy.isMulreplacedenant()) {
if (hibernateDatastore == null) {
hibernateDatastore = GormEnhancer.findDatastore(enreplacedy.getJavaClreplaced());
}
if (supportsSourceType(hibernateDatastore.getClreplaced())) {
((AbstractHibernateDatastore) hibernateDatastore).enableMulreplacedenancyFilter();
}
}
} else if ((event instanceof ValidationEvent) || (event instanceof PreInsertEvent) || (event instanceof PreUpdateEvent)) {
AbstractPersistenceEvent preInsertEvent = (AbstractPersistenceEvent) event;
PersistentEnreplacedy enreplacedy = preInsertEvent.getEnreplacedy();
if (enreplacedy.isMulreplacedenant()) {
TenantId tenantId = enreplacedy.getTenantId();
if (hibernateDatastore == null) {
hibernateDatastore = GormEnhancer.findDatastore(enreplacedy.getJavaClreplaced());
}
if (supportsSourceType(hibernateDatastore.getClreplaced())) {
Serializable currentId;
if (hibernateDatastore instanceof MulreplacedenantCapableDatastore) {
currentId = Tenants.currentId((MulreplacedenantCapableDatastore) hibernateDatastore);
} else {
currentId = Tenants.currentId(hibernateDatastore.getClreplaced());
}
if (currentId != null) {
try {
if (currentId == ConnectionSource.DEFAULT) {
currentId = (Serializable) preInsertEvent.getEnreplacedyAccess().getProperty(tenantId.getName());
}
preInsertEvent.getEnreplacedyAccess().setProperty(tenantId.getName(), currentId);
} catch (Exception e) {
throw new TenantException("Could not replacedigned tenant id [" + currentId + "] to property [" + tenantId + "], probably due to a type mismatch. You should return a type from the tenant resolver that matches the property type of the tenant id!: " + e.getMessage(), e);
}
}
}
}
}
}
}