Groovy SQL и SimpleDateFormat Help
-
20-09-2019 - |
Вопрос
В моей базе данных у меня есть тип столбца: DateTime.
Пример данных столбца: 2009-02-03 19: 04: 23.0
Я использую : SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
Чтобы определить мой формат даты.
Я использую GroovySQL для чтения таблиц, и для каждой строки я добавляю новый объект SampleJ (сопоставлен с новой таблицей - SampleJ).
Здесь мое закрытие:
def sampleQuery(int dataset) {
sqlModule.eachRow("""
select b.*
from dataset a, array_data b
where dataset_id = "${dataset}"
and a.array_data_id = b.array_data_id ;""")
{
def addSample= new SampleJ(it.toRowResult())
addSample.id = "${it.array_data_id}" as int
addSample.dateCreated = dateFormat.parse("${it.date_created}")
//addSample...(more columns)
addSample.save()
}
}
Когда я проверяю, моя временная таблица «образец», вся моя дата не соответствует «$ {it.date_created}».
Все даты установлены на «Новую дату ()» (для закрытия времени выполнения).
Через отладчик:
«$ {it.date_created}» определяется как «Вт 03 февраля 19:04:23 CST 2009», что соответствует (2009-02-03 19: 04: 23.0). Я должен иметь эту дату!
Как я могу решить эту проблему? У меня нет ошибок, просто неправильные даты.
Есть ли простой способ определить мои даты в образце?
Альтернатива AddSample.DateCreated = dateFormat.parse ("$ {it.date_created}")?
Решение
Граали будут устанавливать date_created в текущее время согласно соглашению, вам нужно добавить
static mapping = {
autoTimestamp false
}
к образцу.
В качестве альтернативы, переименование данных о чем -то другое.