Pergunta

No meu banco de dados, eu tenho um tipo de coluna: DateTime.
Dados da coluna Exemplo: 2009-02-03 19: 04: 23.0

Estou a usar : SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S"); Para definir meu formato de data.

Estou usando o GroovySQL para ler tabelas e para cada linhas, estou adicionando um novo objeto Samplej (mapeado para uma nova tabela - Samplej).

Aqui meu fechamento:

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()
            }
    }

Quando eu verifico, minha tabela temporária "Samplej", toda a minha data não corresponde com "$ {it.date_created}".
Todas as datas estão definidas como "new Date ()" (para fechar o tempo de execução).

Via depurador:
"$ {it.date_created}" é definido como "Ter 03 de fevereiro 19:04:23 CST 2009", correspondente a (2009-02-03 19: 04: 23.0). Eu deveria ter essa data!

Como posso corrigir esse problema? Não tenho erro, apenas datas erradas.
Existe uma maneira fácil de definir minhas datas no Samplej?
Uma alternativa a addSample.datecRed = dateFormat.parse ("$ {it.date_created}")?

Foi útil?

Solução

Grails estará definindo Date_created para a hora atual por convenção, você precisa adicionar

static mapping = {
        autoTimestamp false
    }

para samplej.

Como alternativa, renomeie a DATEcreated para outra coisa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top