2015-01-16 2 views
0

Я добавил в свою таблицу с именем config новый столбец типа времени, который генерируется Grails в качестве типа даты в моей базе данных.Grails: как сохранить java.sql.Time-тип в базе данных sql

Этот класс мой домен

import java.sql.Time 
class Config { 
     int nbr_delay 
     Time max_duration 
     static constraints = { 
     } 
} 

В моей странице GSP

<g:field type="time" name="max_duration" value="${fieldValue(bean: configInstance, field: 'max_duration')}" /> 

Теперь, когда я пытаюсь изменить значение max_duration и сохранить его в базе данных, то показать мне эту ошибку Failed to convert property value of type java.lang.String to required type java.sql.Time for property max_duration; nested exception is java.lang.IllegalArgumentException: Could not parse date: Unparseable date: "00:30"

Мой контролер

configInstance.properties = params 
configInstance.save(flush: true) 

Я искал, как разбирать или манипулировать этим типом данных, но я не нашел никакого решения.

ответ

0

Я бы сказал, если у вас есть duration поле, используйте int или long сохранить минут или миллисекунды:

import java.sql.Time 
class Config { 

    long maxDuration 

    void setMax_duration(Time time){ maxDuration = time.time } 

    Time getMax_duration(){ new Time(maxDuration) } 

    static transients = [ 'max_duration' ] 
} 

Затем вы можете сделать в вашем GSP:

<g:formatDate format="HH:mm" date="${new Date(configInstance.maxDuration)}"/> 
Смежные вопросы