Erro de conversão ao enviar input ao controller para salvar
02/08/2018 14:07
0
Boa tarde pessoal, estou tendo dificuldade pra resolver esse problema, espero que possam me ajudar... 
Ao tentar salvar os dados vindo da View somente um campo retorna esse erro:

Failed to convert property value of type java.lang.String to required type com.sisdcon.oficinas.model.Usuarios for property corretor_heados; nested exception is java.lang.IllegalStateException: Cannot convert value of type java.lang.String to required type com.sisdcon.oficinas.model.Usuarios for property corretor_heados: no matching editors or conversion strategy found

na tela tem mais 3 campos do mesmo tipo e funciona corretamente, abaixo deixo o Model, Controller (método de salvar) e o trecho da view (contendo os campos)

Model....

package com.sisdcon.oficinas.model;

@Table(name = "heados")
@Entity
public class Atendimentos {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id_heados;

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "cadastro_heados", referencedColumnName = "id_cadastros", updatable = false, insertable = false)
@NotNull(message = "Cliente Obrigatório.")
private Cadastros cadastro_heados;

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "veiculo_heados", referencedColumnName = "id_veiculos", updatable = false, insertable = false)
@NotNull(message = "Veículo Obrigatório.")
private Veiculos veiculo_heados;

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "seguradora_heados", referencedColumnName = "id_cadastros", updatable = false, insertable = false)
private Cadastros seguradora_heados;

?//--- ESTE É O CAMPO QUE OCORRE O ERRO!!!
@ManyToOne( fetch = FetchType.EAGER)
@JoinColumn(name = "corretor_heados", referencedColumnName = "id_usuarios", updatable = false, insertable = false)
private Usuarios corretor_heados;


private Long usuario_heados;
private String veiculo_km_heados;


Controller... método de salvar

@RequestMapping(method = RequestMethod.POST)
public String salvar(@Validated Atendimentos atendimentos, Errors errors, RedirectAttributes attributes) {

??System.out.println("vou tentar salvar");

? ?///-- O SISTEMA ENTRA AQUI RETORNANDO O ERRO
if (errors.hasErrors()) { 
System.out.println("parei no erro!");
return CADASTROVIEW;
}
try {

atendimentosService.salvar(atendimentos);

} catch (IllegalArgumentException e) {
return CADASTROVIEW;
}

return "redirect:/atendimentos/"+atendimentos.getId_heados();
}



Trecho da view contento os campos....

<form id="FormAtendimentos" method="POST" th:action="@{/atendimentos}" th:object="${atendimentos}">

?<input type="text" th:field="*{seguradora_heados}">

?<input type="text" th:field="*{veiculo_heados}">


?<input type="text" th:field="*{corretor_heados}"> <!--  ESSE É O CAMPO QUE O SISTEMA RETORNA O ERRO    -->

</form>

Percebi que, somente ele ao preencher no caso de Edição, ele nao preenche com o ID da tabela "um número" ele preenche com a referencia ao model dessa forma...

com.sisdcon.oficinas.model.Usuarios@22120bd8


outra coisa é na query que o JPA monta, nela tenho varios joins, daí ele mesmo hora usa inner join ou left outer join..... abaixo deixo a query montada pelo JPA....

 select
        atendiment0_.id_heados as id_heado1_5_0_,
        atendiment0_.cadastro_heados as cadastr25_5_0_,
        atendiment0_.corretor_heados as correto26_5_0_,
        atendiment0_.custosadicionais_heados as custosad2_5_0_,
        atendiment0_.dataentrada_heados as dataentr3_5_0_,
        atendiment0_.dataprevsaida_heados as dataprev4_5_0_,
        atendiment0_.datasaida_heados as datasaid5_5_0_,
        atendiment0_.deducao_heados as deducao_6_5_0_,
        atendiment0_.extramaoobra_heados as extramao7_5_0_,
        atendiment0_.extrapeca_heados as extrapec8_5_0_,
        atendiment0_.franquia_heados as franquia9_5_0_,
        atendiment0_.maoobra_heados as maoobra10_5_0_,
        atendiment0_.materialpintura_heados as materia11_5_0_,
        atendiment0_.obschecklist_heados as obschec12_5_0_,
        atendiment0_.obsextras_heados as obsextr13_5_0_,
        atendiment0_.seguradora_heados as segurad27_5_0_,
        atendiment0_.sinistronumero_heados as sinistr14_5_0_,
        atendiment0_.tipoatendimento_heados as tipoate15_5_0_,
        atendiment0_.usuario_heados as usuario16_5_0_,
        atendiment0_.veiculo_heados as veiculo28_5_0_,
        atendiment0_.veiculo_km_heados as veiculo17_5_0_,
        cadastros1_.id_cadastros as id_cadas6_0_1_,
        cadastros1_.bairro_cadastros as bairro_c7_0_1_,
        cadastros1_.cep_cadastros as cep_cada8_0_1_,
        cadastros1_.cidade_cadastros as cidade_c9_0_1_,
        cadastros1_.cpfcnpj_cadastros as cpfcnpj_2_0_1_,
        cadastros1_.dtnasc_cadastros as dtnasc_10_0_1_,
        cadastros1_.endereco_cadastros as enderec11_0_1_,
        cadastros1_.ie_cadastros as ie_cada12_0_1_,
        cadastros1_.nome_cadastros as nome_ca13_0_1_,
        cadastros1_.numero_cadastros as numero_14_0_1_,
        cadastros1_.razaosocial_cadastros as razaoso15_0_1_,
        cadastros1_.tipo_cadastros as tipo_cad5_0_1_,
        cadastros1_.uf_cadastros as uf_cada16_0_1_,
        usuarios2_.id_usuarios as id_usuar3_11_2_,
        usuarios2_.grupo_usuarios as grupo_us4_11_2_,
        usuarios2_.nome_usuarios as nome_usu5_11_2_,
        cadastros3_.id_cadastros as id_cadas6_0_3_,
        cadastros3_.bairro_cadastros as bairro_c7_0_3_,
        cadastros3_.cep_cadastros as cep_cada8_0_3_,
        cadastros3_.cidade_cadastros as cidade_c9_0_3_,
        cadastros3_.cpfcnpj_cadastros as cpfcnpj_2_0_3_,
        cadastros3_.dtnasc_cadastros as dtnasc_10_0_3_,
        cadastros3_.endereco_cadastros as enderec11_0_3_,
        cadastros3_.ie_cadastros as ie_cada12_0_3_,
        cadastros3_.nome_cadastros as nome_ca13_0_3_,
        cadastros3_.numero_cadastros as numero_14_0_3_,
        cadastros3_.razaosocial_cadastros as razaoso15_0_3_,
        cadastros3_.tipo_cadastros as tipo_cad5_0_3_,
        cadastros3_.uf_cadastros as uf_cada16_0_3_,
        veiculos4_.id_veiculos as id_veicu1_12_4_,
        veiculos4_.ano_veiculos as ano_veic2_12_4_,
        veiculos4_.cor_veiculos as cor_veic3_12_4_,
        veiculos4_.modelo_veiculos as modelo_v4_12_4_,
        veiculos4_.motor_veiculos as motor_ve5_12_4_,
        veiculos4_.placa_veiculos as placa_ve6_12_4_,
        veiculosmo5_.id_veiculosmodelos as id_veicu3_14_5_,
        veiculosmo5_.marca_veiculosmodelos as marca_ve5_14_5_,
        veiculosmo5_.nome_veiculosmodelos as nome_vei4_14_5_ 
    from
        heados atendiment0_ 
    inner join
        cadastros cadastros1_ 
            on atendiment0_.cadastro_heados=cadastros1_.id_cadastros 
    left outer join
        usuarios usuarios2_ 
            on atendiment0_.corretor_heados=usuarios2_.id_usuarios 
    left outer join
        cadastros cadastros3_ 
            on atendiment0_.seguradora_heados=cadastros3_.id_cadastros 
    inner join
        veiculos veiculos4_ 
            on atendiment0_.veiculo_heados=veiculos4_.id_veiculos 
    left outer join
        veiculosmodelos veiculosmo5_ 
            on veiculos4_.modelo_veiculos=veiculosmo5_.id_veiculosmodelos 
    where
        atendiment0_.id_heados=?



Caso precisem de mais alguma informação por favor solicitar, 

Agradeço desde já!!!

Obgriado!

Renato Muniz.
Tags: JPA, Erro, View,Model, Conversao


Ainda não faz parte da comunidade???

Para se registrar, clique aqui.

Podcast da itexto



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

Livro de Spring


/dev/All

Os melhores blogs de TI
em um único lugar!

 
Spring 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.