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.