对于Java程序而言,表示日期、时间的类型只有两种:java.util.Date和java.util.Calendar;但对于数据库而言,表示日期、时间的类型就比较多了,如date、time、datetime、timestamp等。
在这样的背景下,当在实体中定义了一个java.util.Date类型的Filed时,JPA到底是这种类型的Field映射成date类型的列?time类型的列?还是timestamp类型的列呢?这对JPA来说有些难于抉择。在这样的情况下,我们可以使用@Temporal来修饰这种类型的field,使用@Temporal时可指定一个value属性,该属性支持TemporalType.Date、TemporalType.TIME、TemporalType.Timestamp三个值之一,用于指定将该Field映射到数据表的date、time和timestamp类型的数据列。
实例:
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
private Date borrowTime = null;
感谢您的阅读