Filtro utilizando "="
23/03/2016 10:42
0
Bom dia pessoal,

No sistema que tenho dado manutenção (Grails v.2.3.6) descobrimos uma exceção quando um dos registros gerados contem o símbolo de "=" no meio dele, no início desconfiei do ':' porém ao criar a query de pesquisa sem o "=" nós temos o retorno que o dado não existe, e quando inseriamos o ''=" temos a exceção lançada pelo framework.

Nós temos:

- resultId = 'g8HJlc2pnALjI8Gkf+7soBZs46AYGzndcOC77d1PKnM=:_22007_1:_141049_1:chalka:cwrmilla'

Esse dado foi gravado no banco sem problemas, porém ao consultar o registro tenho a seguinte exceção:

2016-02-18 17:37:47,207 [ajp-bio-8009-exec-220] ERROR errors.GrailsExceptionResolver  - IllegalArgumentException occurred when processing request: [POST] /eInvalid filter-parameter name format. Stacktrace follows: java.lang.IllegalArgumentException: Invalid filter-parameter name formatAlguma idéia de como posso contornar esse problema?
Tags: Grails, mysql, filter


0
Não poderia tentar dar um replace() nesse char?
23/03/2016 13:44


0
É isso que estou pensando exatamente...mas não sei qual seria o melhor char pra substituir
23/03/2016 14:20


0
Pode substituir o "=" por "SINALDEIGUAL" (ex.) para testar se funciona
23/03/2016 14:44


0
Valeu Rafael, é uma idéia que já está entre as opções.
O que mais me intriga é que o dado foi gravado corretamente, o que me leva a supor que a query que está sendo montada é que está lançando a exception:
Invalid filter-parameter name format. Stacktrace follows:java.lang.IllegalArgumentException: Invalid filter-parameter name formatA lógica que monta a query está abaixo:

[b]def[/b] findQuery = "from BltiLaunch as bl " +                        "where bl.bltiResourceLink.bltiContext.bltiToolConsumer.customer.customerId='${_customerId}'"        [b]if[/b]( _toolConsumerId != [b]null[/b] && _toolConsumerId != '' )            findQuery += " and bl.bltiResourceLink.bltiContext.bltiToolConsumer.toolConsumerInstanceGuid='${_toolConsumerId}'"        [b]if[/b]( _contextId != [b]null[/b] && _contextId != '' )            findQuery += " and bl.bltiResourceLink.bltiContext.contextId='${_contextId}'"        [b]if[/b]( _resourceLinkId != [b]null[/b] && _resourceLinkId != '' )            findQuery += " and bl.bltiResourceLink.resourceLinkId='${_resourceLinkId}'"        findQuery += " and bl.resultSourcedId='${_resultSourcedId}'"
Alguém consegue observar alguma falha? Já olho e não enxergo mais nada de errado...a query gerada é a seguinte:

from BltiLaunch as bl where bl.bltiResourceLink.bltiContext.bltiToolConsumer.customer.customerId='902' and bl.bltiResourceLink.bltiContext.bltiToolConsumer.toolConsumerInstanceGuid='a757a9cdd8d4485796c994b66de079b7' and bl.bltiResourceLink.bltiContext.contextId='CW_LTI_TESTING_2016' and bl.bltiResourceLink.resourceLinkId='CW_LTI_TESTING_2016_141049_1' and bl.resultSourcedId='g8HJlc2pnALjI8Gkf+7soBZs46AYGzndcOC77d1PKnM=:_22007_1:_141049_1:chalka:cwrmilla'


Valeu!
24/03/2016 11:06


0
Puts foi mal..não consigo editar de novo... =/ -> uma boa sugestão para o Kico! :)
24/03/2016 11:07



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