我在我的Java项目中使用JPA,并且时间戳工作得不好:它只显示2015-08-12 00:00:00.0(这一天是正确的,但小时不是)
@Entity
public class Session implements Serializable {
..
@Temporal(TemporalType.DATE)
private Date timestamp;
..
public Session(String sessionId) {
super();
this.sessionId = sessionId;
this.timestamp = new Date();
}
public Session() {
super();
this.timestamp = new Date();
}
}
你知道如何解决这个问题吗?
答案 0 :(得分:4)
您应该使用TemporalType.TIMESTAMP将字段映射到java.sql.Timestamp,因此它还会包含与时间相关的信息,而不仅仅是日期。相比之下,您使用的类型TemporalType.DATE会映射到java.sql.Date,类包含日,月等信息。
因此,您的代码将转换为:
@Entity
public class Session implements Serializable {
..
@Temporal(TemporalType.TIMESTAMP)
private Date timestamp;
..
public Session(String sessionId) {
this.sessionId = sessionId;
this.timestamp = new Date();
}
public Session() {
this.timestamp = new Date();
}
}