Se você está manipulando elementos numa coleção persistente (PersistentSet) do hibernate, por via das dúvidas, sobrescreva os métodos equals() e hashCode(). Por quê? Veja isso:
A implementação automática dos métodos equals() e hashCode() do Eclipse é falha, não realiza encapsulamento, e no caso do Timestamp e do Date, realiza justamente a comparação falha que é descrita no artigo acima. Então, o melhor a fazer seria usar o compareTo() dentro do equals(), e no caso do hashCode(), fazer algo parecido com isso:
public int hashCode() {
 final int prime = 31;
 int result = 1;
 if (getDataHoraFim() != null) {
     Calendar calendar = Calendar.getInstance();
     calendar.setTime(getDataHoraFim());
     result = prime * result
             + calendar.get(Calendar.YEAR);
     result = prime * result
             + calendar.get(Calendar.MONTH);
     result = prime * result
             + calendar.get(Calendar.DATE);
     result = prime * result
             + calendar.get(Calendar.HOUR_OF_DAY);
     result = prime * result
             + calendar.get(Calendar.MINUTE);
 }
 ...
}
note que esta implementação é totalmente diferente da implementação de hashCode() do java, que é algo parecido com:
((int) getDataFim().getTime()) ^ ((int) (getDataFim().getTime() >>> 32))
 
 
 0 Comentários
0 Comentários