Вопрос

В моей базе данных у меня есть тип столбца: 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
    }

к образцу.

В качестве альтернативы, переименование данных о чем -то другое.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top