Question

Dans ma base de données, j'ai un type de colonne:. Datetime
Exemple de données de la colonne: 2009-02-03 19: 04: 23.0

J'utilise: SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S"); pour définir mon format de date

.

J'utilise groovySQL lire les tableaux et pour chaque lignes, je suis d'ajouter un nouvel objet SampleJ (mis en correspondance avec une nouvelle table - SampleJ).

Voici ma fermeture:

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

Quand je vérifie, ma table temporaire "SampleJ", toute ma date ne correspond pas à "$ {} it.date_created".
Toutes les dates sont à "new Date ()" (à temps d'exécution de fermeture).

Via débogueur:
"$ {} It.date_created" est définie comme "3 février 2009 mar 19:04:23 CST", ce qui correspond à (2009-02-03 19: 04: 23,0). Je devrais avoir cette date!

Comment puis-je résoudre ce problème? Je n'ai pas d'erreur, les dates juste mal.
Est-il un moyen facile de définir mes dates SampleJ?
Une alternative à addSample.dateCreated = dateFormat.parse ( "$ {} it.date_created")?

Était-ce utile?

La solution

Grails sera sur le DATE_CREATED à l'heure actuelle par convention, vous devez ajouter

static mapping = {
        autoTimestamp false
    }

à SampleJ.

Vous pouvez également renommer dateCreated à autre chose.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top