Bom dia, estou com um problema que não sei se existe uma forma melhor de fazer isto. Eu tenho as seguintes classes VO:
public class UsuarioVO implements Serializable {
@Id @GeneratedValue
private Long id;
@Column(length = 500, nullable = false)
private String nome;
@Column(length = 150, nullable = false)
private String email;
@Column(length = 50, nullable = false)
private String senha;
...
}
public class TransacaoVO implements Serializable {
@Id @GeneratedValue
private Long id;
@Column(length = 10, nullable = false)
private String tid;
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="usuario_id", referencedColumnName="id", nullable=false)
private UsuarioVO usuario;
...
}
No meu controle tenho algo assim:
public class TransacaoController {
@Autowired
private TranasacaoService service;
@RequestMapping(value = "/{tid}", method = RequestMethod.POST)
public @ResponseBody Map<String, ? extends Object> getTID(@PathVariable("tid") String tid) {
TransacaoVO t = service.getByTID(tid);
if (t != null) {
Map<String, Object> modelMap = new HashMap<String, Object>(2);
modelMap.put("transacao", t);
modelMap.put("success", true);
return modelMap;
} else {
...
}
}
}
O problema que estou tendo é que, quando retorno uma transação, é retornado o usuário junto (ok, preciso de alguns dados), porém o atributo senha não precisaria retornar. Na verdade, acabei fazendo uma gambiarra e montando o map na mão, ignorando o atributo senha, porém não achei que ficou “legal”.
Alguém já passou por isto? Como resolveu? Existe alguma anotação para colocar na classe VO para não retornar determinado atributo?
Grato!