@Temporal——指定查询Date格式

本文介绍如何利用@Temporal注解处理Java中Date类型的属性,以匹配数据库中不同的日期格式需求,包括DATE、TIME及TIMESTAMP等。

@Temporal标签的作用很简单:

       (1) 如果在某类中有Date类型的属性,数据库中存储可能是'yyyy-MM-dd hh:MM:ss'要在查询时获得年月日,在该属性上标注@Temporal(TemporalType.DATE) 会得到形如'yyyy-MM-dd' 格式的日期。

      (2)如果在某类中有Date类型的属性,数据库中存储可能是'yyyy-MM-dd hh:MM:ss'要获得时分秒,在该属性上标注 @Temporal(TemporalType.TIME) 会得到形如'HH:MM:SS' 格式的日期。

      (3)如果在某类中有Date类型的属性,数据库中存储可能是'yyyy-MM-dd hh:MM:ss'要获得'是'yyyy-MM-dd hh:MM:ss',在该属性上标注 @Temporal(TemporalType.TIMESTAMP) 会得到形如'HH:MM:SS' 格式的日期

注意:该注解只能用于java.util.Date或java.util.calendar类型的类属性上

@Entity
@Table(name="mession")
@DynamicInsert(true)
public class Mession {
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="pk_id",length=11)
	private Integer pk_id;
	@Column(name="m_name")
	private String m_name;
	@Column(name="m_time")
	private String m_time;
	@Column(name="meaparam_id")
	private Integer meaparam_id;
	@Column(name="ts")
	@Temporal(TemporalType.TIMESTAMP)	//获取数据库时间格式
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")	//Hibernate中@ResponseBody返回的时间格式
	private Date ts;
	@Column(name="dr")
	private Integer dr;
	public Mession() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Mession(Integer pk_id, String m_name, String m_time,
			Integer meaparam_id, Date ts, Integer dr) {
		super();
		this.pk_id = pk_id;
		this.m_name = m_name;
		this.m_time = m_time;
		this.meaparam_id = meaparam_id;
		this.ts = ts;
		this.dr = dr;
	}
	get/set()
}


package cn.njucm.dosepre.entity; import lombok.Data; import javax.persistence.*; import java.util.Date; @Data // 自动生成setter/getter,必须保留 @Entity @Table(name = "user") @Inheritance(strategy = InheritanceType.JOINED) public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false, unique = true) private String username; @Column(nullable = false) private String password; @Enumerated(EnumType.STRING) private UserRole role; @Enumerated(EnumType.STRING) private UserStatus status = UserStatus.PENDING; @Column(name = "full_name", nullable = false) private String fullName; @Column(length = 100) private String email; @Column(length = 20) private String phone; // ========== 新增缺失字段 ========== @Column(name = "department") // 科室(医生专属) private String department; @Column(name = "hospital") // 医院(医生专属) private String hospital; @Column(name = "license_number") // 执业证号(医生专属) private String licenseNumber; // ================================= @Column(name = "create_time") @Temporal(TemporalType.TIMESTAMP) private Date createTime; @Column(name = "update_time") @Temporal(TemporalType.TIMESTAMP) private Date updateTime; @PrePersist protected void onCreate() { createTime = new Date(); } @PreUpdate protected void onUpdate() { updateTime = new Date(); } public String getFullName() { return fullName; } public void setFullName(String fullName) { this.fullName = fullName; } public String getDepartment() { return department; } public void setDepartment(String department) { this.department = department; } public String getHospital() { return hospital; } public void setHospital(String hospital) { this.hospital = hospital; } public String getLicenseNumber() { return licenseNumber; } public void setLicenseNumber(String licenseNumber) { this.licenseNumber = licenseNumber; } }是这样吗
最新发布
11-24
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值