В моей модели должно быть несколько перечислений одного типа:
class Broker {
static constraints = {
brokerTypes(nullable:false)
}
List<BrokerType> brokerTypes
}
Модель создается с помощью параметров из запроса, в котором содержится список типов Broker:
def save(){
def brokerInstance = new Broker(newParams)
System.out.println(brokerInstance.getBrokerTypes().toString());
if (!brokerInstance.save(flush: true)) {
render(view: "create", model: [brokerInstance: brokerInstance])
return
}
redirect(action: "show", id: brokerInstance.id)
}
println распечатывает список BrokerTypes, как и ожидалось, поэтому я знаю, что он существует в экземпляре. Позже модель извлекается следующим образом:
def brokerInstance = Broker.findByLatAndLon(lat,lon)
System.out.println(brokerInstance.getBrokerTypes().toString());
На этот раз println выводит 'null'
Итак, я полагаю, что проблема в том, что GORM не знает, как сохранить этот список перечислений, и вместо этого, когда вызывается brokerInstance.save (), он сохраняет поле brokerTypes как ноль.
Нужно ли мне как-то создать отображение, чтобы GORM распознал список? Альтернативой взлома было бы вместо сохранения списка перечислений сохранить список строк или чего-то еще, а затем при необходимости отобразить обратно на перечисление, но это не кажется чистым