Справка по Groovy Sql и SimpleDateFormat - PullRequest
0 голосов
/ 16 февраля 2010

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

Когда я проверяю, моя временная таблица "SampleJ", все мои даты не совпадают с "$ {it.date_created}".
Все даты установлены на «новую дату ()» (чтобы закрыть время выполнения).

Через отладчик:
«$ {it.date_created}» определен как «вт 03 февраля 19:04:23 CST 2009», что соответствует (2009-02-03 19: 04: 23.0). У меня должна быть эта дата!

Как я могу исправить эту проблему? У меня нет ошибок, просто неправильные даты.
Есть ли простой способ определить мои даты в SampleJ?
Альтернатива addSample.dateCreated = dateFormat.parse ("$ {it.date_created}")?

1 Ответ

1 голос
/ 16 февраля 2010

Grails будет устанавливать date_created в текущее время по соглашению, вам нужно добавить

static mapping = {
        autoTimestamp false
    }

до образца.

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

...