Pessoal, não sei se alguém ja passou por isso. Tenho uma classe persistente onde o metodo equals leva em consideração alguns atributos mas não o
identificador(chave primaria la no banco). Teoricamente se vc passa um objeto com os atributos usados no equals igual a um objeto que já ta no set, a s implementações cuidam para não sobreescrever o objeto que já tá lá, só que a implementação do hibernate sobreescreve!! Vi o fonte e ele leva em consideração a chave primaria do objeto que tá lá, fazendo uma verificação. Alguém ja passou e como resolveu? Eu criei uma lista nova, preenchi e sobreescrevi a que tava lá!. Foi mal pelo post grande.
@Override
public boolean equals(Object obj) {
boolean resultado = false;
if (this == obj)
resultado = true;
if (obj == null)
resultado = false;
if (getClass() != obj.getClass())
resultado = false;
final Avaliacao other = (Avaliacao) obj;
if (colaborador == null) {
if (other.colaborador != null)
resultado = false;
} else if (!colaborador.equals(other.colaborador))
resultado = false;
if (projeto == null) {
if (other.projeto != null)
resultado = false;
} else if (!projeto.equals(other.projeto))
resultado = false;
if (this.data.getYear() != other.data.getYear())
resultado = false;
return resultado;
}
Alberto