Ola senhores,
Estou com um problema que já quebrei a cabeça 2 dias e não achei uma solução.
A aplicação é WEB, e guardo na sessão um objeto do tipo LinkedList. Esse objeto armazena dentro dele um objeto chamado Compra que tem o código mais ou menos assim
public class Compra implements Serializable {
private static final long serialVersionUID = 1L;
// -- Atributos -- //
private String id;
private int quantidade;
private double valor;
private Produtos produtos;
// -- Getters and Setters -- //
public boolean equals(Object obj) {
if ((obj instanceof Compra) && (((Compra)obj).getId().equals(id))) {
return true;
} else {
return false;
}
}
public int hashCode() {
return id.hashCode();
}
Você podem ver que eu implementei o método equals e hashcode. Também existe um objeto do tipo Produtos e ele que dá problema. O objeto do tipo Produtos é mais ou menos assim
public class Produtos implements Serializable {
private static final long serialVersionUID = 1L;
// -- Atributos -- //
private int id;
private String nome;
private String autor;
private String tipo;
private double preco;
// -- Getters and Setters -- //
public boolean equals(Object obj) {
if ((obj instanceof Produtos) && (((Produtos)obj).nome.equals(nome) )) {
return true;
} else {
return false;
}
}
public int hashCode() {
return nome.hashCode();
}
Também implementei o equals e hashcode.
Quando eu jogo para a sessão a LinkedList, eu recebo uma exception que não pode serializar o objeto Compra.
Se dentro do objeto compra eu RETIRO o objeto PRODUTOS, a Serialização funciona.
Alguém poderia me ajudar a corrigir esse problema?
Obrigado