数据库的字段类型有date、time、datetime
而Temporal注解的作用就是帮Java的Date类型进行格式化,一共有三种注解值:
第一种:@Temporal(TemporalType.DATE)——>实体类会封装成日期“yyyy-MM-dd”的 Date类型。
第二种:@Temporal(TemporalType.TIME)——>实体类会封装成时间“hh-MM-ss”的 Date类型。
第三种:@Temporal(TemporalType.TIMESTAMP)——>实体类会封装成完整的时间“yyyy-MM-dd hh:MM:ss”的 Date类型。
@Temporal注解的定义:
@Target({ METHOD, FIELD }) @Retention(RUNTIME) public @interface Temporal { /** * The type used in mapping <code>java.util.Date</code> or <code>java.util.Calendar</code>. */ TemporalType value(); }
TemporalType枚举类型定义:
package javax.persistence; /** * Type used to indicate a specific mapping of <code>java.util.Date</code> * or <code>java.util.Calendar</code>. * * @since Java Persistence 1.0 */ public enum TemporalType { /** * Map as <code>java.sql.Date</code> */ DATE, /** * Map as <code>java.sql.Time</code> */ TIME, /** * Map as <code>java.sql.Timestamp</code> */ TIMESTAMP }
应用example:
注解方式有两种:
写在字段上:
@Temporal(TemporalType.TIMESTAMP)
private Date birthday;
写在 getXxx方法上:
@Temporal(TemporalType.DATE) @Column(name = "birthday", length = 10) public Date getBirthday() { return this.birthday; }