2013-03-05 2 views
0

В моем коде сегодня я столкнулся с интересной проблемой. Я использую Grails 2.2.0.Настройка свойства календаря объекта домена

Вот код

def user = lookupUserClass().get(params.id) 
log.info "[update]user.subscriptionExpiryDate1: " + user.subscriptionExpiryDate 
user.subscriptionExpiryDate = Calendar.getInstance(); 
log.info "[update]user.subscriptionExpiryDate2: " + user.subscriptionExpiryDate 
if (user.subscriptionExpiryDate instanceof Calendar) { 
    log.error "***** Is A Calendar Instance ***" 
} else if (user.subscriptionExpiryDate instanceof String) { 
    log.error "***** Is A String Instance ***" 
} else { 
    log.error "***** Is Something else ***" 
} 

if (!user.save()) { 
    log.error "[update]Error occured saving user. Errors are: " 
    user.errors.each { err -> log.error err; } 
    render view: 'edit', model: buildUserModel(user) 
    return 
} else { 
    log.info "[update]Successfully saved user" 
} 

subscriptionExpiryDate является календарь свойство в моем User объекта.

Когда я выполняю сохранения я получаю следующее сообщение об ошибке

Не удалось преобразовать значение свойства типа «» java.lang.String для требуемого типа «java.util.Calendar» для свойства «subscriptionExpiryDate»; вложенное исключение java.lang.IllegalArgumentException: дата не удалось разобрать: не поддается синтаксическому анализу Дата: 05/03/2013

Может кто-нибудь, пожалуйста, объясните, почему я бы видеть эту ошибку на приведенном выше коде, ничего не выделяясь

+0

так что сообщение об ошибке из вышеперечисленного зарегистрировано? Если после 'Unparsable date 'ничего не происходит:' дата пуста и несовместима/недействительна – moeTi

+0

Я предлагаю вам использовать Joda instaead of Calendar. См. [Плагин] (http://grails.org/plugin/joda-time) –

+0

@moeti извинения, я не вставлял полную дату, дата распечатывается и является действительной датой. Серджио - спасибо Серхио. Я сохраню это но мне было бы интересно узнать, почему мой первоначальный код не работает сначала – Damien

ответ

0

Этот вопрос был разрешен согласно предложению Эндрюса

Смежные вопросы