Atributo Date não aceita nulo mesmo com nullable:true
21/01/2009 00:00
0
Eu de novo <!-- s:( --><img src="{SMILIES_PATH}/icon_sad.gif" alt=":(" title="Sad" /><!-- s:( -->

Estou com um problema com datas a algum tempo mas só resolvi mexer agora, se eu tento salvar um registro com uma data nula, ele da uma mensagem de erro assim: O campo dataInicioProcesso deve ser uma data válida.

Estou com este problema em tres campos de datas desta classe,e dá o mesmo erro, o engraçado é que em outras classes não ocorre este erro, e estou fazendo do mesmo jeito.

Procurei em tudo qualquer canto mas não achei resposta.. Alguém já passou por isto?


// classe
class Processo &#123;
Date dataInicioProcesso
static constraints = &#123;
dataInicioProcesso(nullable&#58;true, blank&#58;true)
&#125;
&#125;

// tag GSP do plugin richui, já tentei com o datePicker padrão do GSP e nada
<richui&#58;dateChooser name=&quot;dataInicioProcesso&quot; format=&quot;dd/MM/yyyy&quot; value=&quot;$&#123;processoInstance?.dataInicioProcesso&#125;&quot;/>

// imprime os erros
<g&#58;eachError bean=&quot;$&#123;processoInstance&#125;&quot; field=&quot;dataInicioProcesso&quot;>
<li>$&#123;it&#125;</li>
</g&#58;eachError>

// mensagem do erro
Field error in object 'Processo' on field 'dataInicioProcesso'&#58; rejected value [struct]; codes [typeMismatch.Processo.dataInicioProcesso,typeMismatch.dataInicioProcesso,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable&#58; codes [Processo.dataInicioProcesso,dataInicioProcesso]; arguments []; default message [dataInicioProcesso]]; default message [Failed to convert property value of type [java.lang.String] to required type [java.util.Date] for property 'dataInicioProcesso'; nested exception is java.lang.IllegalArgumentException&#58; Could not parse date&#58; Unparseable date&#58; &quot;struct&quot;]
Tags: Grails


0
fpdella,

isso tá com cara que pode ser o componente richui que está levando uma string vazia e tentando transformar em Date. Faça o seguinte teste :

crie um registro pela console :

no Dos, dê o comando grails console

def proc = new Processo(dataInicioProcesso: null).save

se nao der erro, é o componente visual mesmo.

Herrera
21/01/2009 00:00


0
RESOLVIDO!

Deu o maior baile mas consequi <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->

Como eu disse no comentário no codigo eu tinha tentado com o datePicker e também não funcionou. Então o problema não era com o richui.

A verdade é que, sempre que submete-se um formulário sem preenche-lo ele manda como strings vazias ao invés de null, por isto o erro de converter uma string vazia em Date.

Eu fiz o que vc me mandou e ele deu um erro com os outros atributos porque não foi atribuido nada, deixando eles nulos, e tive que dar um nullable:true em todos os campos para fazer isto (ou atribuir algum valor para cada atributo). Por padrão todos os campos são nullable:false

By default, all fields are not nullable (required).
<!-- m --><a class="postlink" href="http://grails.org/Validation+Reference#nullable">http://grails.org/Validation+Reference#nullable</a><!-- m -->

Para resolver o problema das datas, antes setar o objeto processo com os parametros eu fiz isto:


if (params.dataInicioProcesso_year == '' ||
params.dataInicioProcesso_month == '' ||
params.dataInicioProcesso_day == '')
params.dataInicioProcesso = null


def processoInstance = new Processo(params)


<!-- s:wink: --><img src="{SMILIES_PATH}/icon_wink.gif" alt=":wink:" title="Wink" /><!-- s:wink: -->
22/01/2009 00:00


0
Estou novamente trabalhando com datas e usando a mesma gambiarra, quando será que este problema será corrigido? O Grails deveria prever e tratar datas nulas.
17/12/2009 00:00


0
Voce abriu um ticket no Jira do grails?

Posta o link pra votarmos e ser resolvido mais rapido, ou manda um patch e vai ser resolvido mais rapido ainda.
17/12/2009 00:00



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