У меня есть некоторые пользовательские перечисления, на которые ссылаются при создании домена,Случайных Enum Усечение в Groovy
package locationEnums
enum HazardType {
Particulates,
Chemicals,
Other
}
При создании() функции;
def create() {
new Location(
name: params.name,
hazardsPresent: params.hazardsPresent,
hazardTypes: params.hazardTypes as HazardType[],
exposureArea: params.exposureArea as ExposureArea[],
exposureLevel: params.exposureLevel as RiskLevel,
comments: params.comments,
picture: params.picture.bytes,
survey: Survey.get(params.survey as int)
).save()
выполняется при выборе опасности, как «Chemical» я получаю следующее сообщение об ошибке:
URI: /location/create
Class: java.lang.IllegalArgumentException
Message: null
Caused by: No enum constant locationEnums.HazardType.C
Как вы можете видеть, что выбор «Chemical» усекается до «C», и я понятия не имею, почему это происходит. Любая помощь приветствуется.
Возможно, стоит сделать println "params are $ params" в функции create, чтобы увидеть, можете ли вы определить этот HazardType.C в выводе. checkout queuekit plugin Я использовал перечисление для priorty - перечисление сидит в src/groovy и отлично работает в классе домена – Vahid
@vahid Я запустил его в отладке и отслеживал параметры полностью. Они правильны, пока не попытаются сэкономить, а затем все испортит ... – Vince
очень сложно комментировать, учитывая, что у вас нет .C в полях сохранения попробуйте def a = new Location (..) if (! A.save()) {println "errors $ {e.errors}"}, чтобы получить представление о том, какой объект в классе домена терпит неудачу, работал ли он раньше? – Vahid