Grails è un processo di bootstrap che viene eseguito all'avvio dell'app. È elegante; puoi configurarlo per fare cose diverse in ambienti diversi.
Un approccio consiste nel fare quanto segue in bootstrap:
1) Leggi il file csv, creando oggetti Domain man mano che procedi.
2) Per ogni oggetto dominio, controlla se esiste e, in caso contrario, youDomainObject.save()
questo è tutto.
per il codice, qualcosa come
new File(filePath).splitEachLine(',') {fields ->
def domainObject = new YouDomainObject(
id: fields[0].trim(),
name: fields[1].trim()
)
if (domainObject.hasErrors() || domainObject.save(flush: true) == null) {
log.error("Could not import domainObject ${domainObject.errors}")
}
log.debug("Importing domainObject ${domainObject.toString()}")
}