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


0
como você esta persistindo os Dados?
Mostre a classe Service por favor.
qual Template Engine você usa?
16/09/2018 08:11


0
Opa Wagner, obg por responder, mas desisti do Spring por hora, to desenvolvendo com NodeJs!
Obg



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.