Hibernate中日期类型字段的映射策略

本文探讨了在Hibernate中如何映射日期类型的数据,包括Date、Time、Timestamp及其与Java 8日期时间API的交互。重点介绍了TemporalType注解在确定数据库中日期/时间类型映射的作用,以及如何处理Java 8新日期时间API与数据库之间的隐式映射问题。
摘要由CSDN通过智能技术生成

在Hibernate中映射日期类型的数据是比较麻烦的一件事,因为除了有SQL定义的标准的日期类型,还有各个数据库厂商的自定义类型。这里暂时只考虑三种各个数据库厂商都基本支持的数据类型,如下:

  • Date:该类型对应Java中的java.sql.Date类型;
  • Time:该类型对应Java中的java.sql.Time类型
  • Timestamp:该类型对应Java中的java.sql.Timestamp类型

使用上述的三种类型的字段可以直接映射到数据库中对应的数据类型。但是常见的我们使用较多的是java.util.Date等类型,使用这种类型的字段可以映射成Date/Time/Timestamp中的任何一种类型,当然只靠单独的这种类型是不能完成工作的,但是可以通过一个注解@Temporal 来选择到底映射成数据库中哪种日期/时间类型,具体如下:

  • TemporalType.DATE:对应Date数据类型,格式YYYY-MM-DD;
  • TemporalType.TIME:对应Time数据类型,格式HH:MM:SS;
  • TemporalType.TIMESTAMP:对应Timestamp数据类型,格式YYYY-MM-DD HH:MM:SS,不同的厂商的实现的精度也不同,根据具体情况具体分析;<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值