Como forçar o Hibernate a retornar datas como java.util.Date em vez de timestamp?

Situaçã:

u tenho uma classe persistente com variável do tipo java.util.Date:

import java.util.Date;

@Entity
@Table(name = "prd_period")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Period extends ManagedEntity implements Interval {

   @Column(name = "startdate_", nullable = false)
   private Date startDate;

}

Corresponding table in DB:

CREATE TABLE 'prd_period' (
  'id_' bigint(20) NOT NULL AUTO_INCREMENT,
 ...
  'startdate_' datetime NOT NULL
)

Em seguida, salvei meu objeto Period no DB:

Period p = new Period();
Date d = new Date();
p.setStartDate();
myDao.save(p);

Depois, se estou tentando extrair meu objeto do banco de dados, ele é retornado com a variável startDate do tipo Timestamp - e todos os lugares onde estou tentando usar iguais (...) estão retornando false.

Questã: existe algum meio de forçar o Hibernate a retornar datas como objeto do tipo java.util.Date em vez de Timestamp sem modificação explícita de cada variável (por exemplo, ele deve poder funcionar apenas, sem modificação explícita das variáveis existentes do java.util Tipo de data)?

NOTA

Eu encontrei um número de soluções explícitas, nas quais as anotações são usadas ou o setter é modificado - mas tenho muitas classes com variáveis de data - por isso preciso de uma solução centralizada e tudo o que é descrito abaixo não é bom o suficient

Usando a anotação @Type: - java.sql.Date será retornado

@Column
@Type(type="date")
private Date startDate;

Usando a anotação @Temporal (TemporalType.DATE) - java.sql.Date será retornado

@Temporal(TemporalType.DATE)
@Column(name=”CREATION_DATE”)
private Date startDate;

Modificando o setter (cópia detalhada) - java.util.Date será retornado

public void setStartDate(Date startDate) {
    if (startDate != null) {
        this.startDate = new Date(startDate.getTime());
    } else {
        this.startDate = null;
    }
}

Pela criação do meu próprio tipo: - java.util.Date será retornado

s detalhes são dados aqui:http: //blogs.sourceallies.com/2012/02/hibernate-date-vs-timestamp

questionAnswers(14)

yourAnswerToTheQuestion