Я адаптирую существующий проект Grails 3 к мультитенантной структуре, используя режим схемы, предоставляемый GORM, и у меня возникают проблемы с работой прослушивателей GORM, когда я задаю арендатора.
Мой слушатель выглядит так:
@CompileStatic
class VehicleListenerService {
@Listener(Vehicle)
void onPreInsertEvent(PreInsertEvent event) {
println "*** Vehicle preInsert"
event.entityAccess.setProperty('model', 'preInsert')
}
@Listener(Vehicle)
void onPreUpdateEvent(PreUpdateEvent event) {
println "*** Vehicle preUpdate"
event.entityAccess.setProperty('model', 'preUpdate')
}
}
Таким образом, каждый раз, когда автомобиль создается или обновляется, его модель следует менять на preInsert или preUpdate.
Текущий арендатор определяется поддоменом, указанным в URL.Если я получаю доступ к приложению без субдомена (через http://localhost:8080),, слушатель работает должным образом, но если я предоставляю субдомен (http://test.localhost:8080),, слушатель ничего не делает, а модель транспортного средства - нет).изменить.
Что мне нужно сделать, чтобы слушатель GORM работал с любым арендатором?
Я создал пример проекта (https://github.com/sneira/mtschema)который воспроизводит ошибку.