Problemas com WithCriteria
23/11/2011 21:55
0
Olá, pessoal!

Estou com o seguinte problema: Preciso implementar um método transacional que inclui registros em um banco de dados a partir de um arquivo CSV. Consegui implementá-lo até o momento sem maiores problemas. A questão é que preciso testar os valores de uma determinada coluna do CSV para validar se o usuário fez corretamente o input dos dados. Resolvi utilizar Criterias para isso, mas estou obtendo um erro de retorno ao tentar passar um parâmetro para ela.
Segue abaixo:


def empresa = Empresa.findByNome(valorCSV)

def listaCargosEmpresa = Cargo.withCriteria {
centroDeCusto {
empresa {
eq("nome", empresa)
}
}
}


Me parece que o problema está no parâmetro. Mas infelizmente as informações sobre Criterias na web são muito precárias...

Obrigado!
Tags: criterias, withcriterias, csv


1
Oi Carlos,

você está tentando validar o conteúdo do CSV antes de ser persistido no banco de dados. Por isto não está surtindo efeito.

Criterias sempre obtém o valor diretamente do banco de dados relacional. Neste caso, acredito que você deva usar algo mais simples. Que tal um código como o abaixo?


def meuInputStream // supondo que você esteja lendo o seu arquivo csv de um inputstream
meuInputStream.withEachLine { linha -> // se não me engano é este o nome do método que vai ser injetado nos streams pelo Groovy
def valores = linha.split(";")
// valide aqui dentro e dispare uma excessão caso dê erro
}


0
Olá, Henrique!

Resolvido o problema...

Na verdade, realmente precisava testar o valor do CSV com o valor do atributo do meu database. Meu erro estava no parâmetro da criteria, que ao invés de "eq('nome', empresa)" devia ser "eq('nome', empresa.nome)".
:-)

Obrigado.
25/11/2011 15:34



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto