我有一个带有Timestamp字段的实体,该实体与Oracle数据库中的DATE列相对应。

@Entity
public class Order {
private Tiemstamp purchaseDate;
//more fields...
}

当我插入一行时,数据库中的DATE格式为“ dd / MM / yyyy hh:mm:ss”,但我希望它仅为“ dd / MM / yyyy”。

如何定义格式?

参考方案

要在time和Date的Java属性中忽略Hibernate,请将您的属性声明为java.util.Date,并同时使用注释@Type(type="date")或使用@Temporal(TemporalType.DATE)注释。

这是您需要的:

@Column
@Type(type="date")
private Date purchaseDate;
@Column
@Temporal(TemporalType.DATE)
private Date purchaseDate;

因为Timestamp设计为同时容纳date和time,所以Date仅容纳date。

有关更多详细信息,请参考HIBERNATE DATE VS TIMESTAMP Article。