@Willian_Lima escreveu:
Boa tarde.
Estou com o seguinte erro ao escrever o Json.Could not write JSON: Invalid Object Id definition for br.com.claro.tcc.web.portalsega.model.Secretaria: cannot find property with name '@id'; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Invalid Object Id definition for br.com.claro.tcc.web.portalsega.model.Secretaria: cannot find property with name '@id' (through reference chain: java.util.ArrayList[0])
Classe Model:
package br.com.claro.tcc.web.portalsega.model; import java.io.Serializable; import java.util.HashSet; import java.util.List; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.ElementCollection; import javax.persistence.EmbeddedId; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.ManyToMany; import javax.persistence.Table; import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.ObjectIdGenerators; @Entity @Table(name = "tb_sega_vip_sec") @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class) public class Secretaria implements Serializable { /* * chave composta da tabela tb_sega_vip_sec */ @Id private String id_secretaria; private Integer tipo; private String id_vip; @ManyToMany(mappedBy = "secretarias", cascade = CascadeType.ALL, fetch = FetchType.EAGER) @JsonIgnore private Set<Usuario> users = new HashSet<>(); /** * @param id_secretaria * @param id_vip * @param users * @param tipo */ public Secretaria(String id_secretaria, String id_vip, Set<Usuario> users, Integer tipo) { super(); this.id_secretaria = id_secretaria; this.id_vip = id_vip; this.users = users; this.tipo = tipo; } public Secretaria() { } public Set<Usuario> getUsers() { return users; } public void setUsers(Set<Usuario> users) { this.users = users; } public String getId_secretaria() { return id_secretaria; } public void setId_secretaria(String id_secretaria) { this.id_secretaria = id_secretaria; } public String getId_vip() { return id_vip; } public void setId_vip(String id_vip) { this.id_vip = id_vip; } public Integer getTipo() { return tipo; } public void setTipo(Integer tipo) { this.tipo = tipo; }
}
Metodo no controller:
@GetMapping(value = { "/obter/{perfil}" }) @ResponseBody public ResponseEntity<?> usuario(HttpServletRequest request, @PathVariable(value = "perfil", required = true) String usuarioFind) { logger.info("[Recurso:/admin/usuario/{" + usuarioFind + "}, sessao:" + request.getSession().getId() + ", usuario:" + request.getUserPrincipal().getName() + "]"); try { Usuario usuario = null; Secretaria secretaria = null; List<Object> req = new ArrayList<Object>(); usuario = serv.findOne(usuarioFind); secretaria = secServ.findOne(usuarioFind); // req.add(usuario); req.add(secretaria); logger.info("[Recurso:/admin/usuario/{" + usuarioFind + "}, sessao:" + request.getSession().getId() + ", usuario:" + request.getUserPrincipal().getName() + "]" + "[ParametrosResposta:{usuario:" + usuario.getUsuario() + "}]"); return new ResponseEntity<Object>(req, HttpStatus.OK); } catch (Exception e) { logger.error("[Recurso:/admin/usuario/{" + usuarioFind + "}, sessao:" + request.getSession().getId() + ", usuario:" + request.getUserPrincipal().getName() + "]" + "[ParametrosResposta:{msg: Não foi possivel obter o Usúario}]", e); return new ResponseEntity<String>("{\"msg\":\"Não foi possivel obter o Usúario\"}", HttpStatus.EXPECTATION_FAILED); } }
Alguma sugestão de correção deste erro?
OBS: Ja tentei passar por JsonIgnore, mas não solucionou.
Mensagens: 2
Participantes: 1