JPA(Hibernate)中使用Java8的日期LocalDate、LocalDateTime
来源:互联网 发布:java web项目实战素材 编辑:程序博客网 时间:2024/05/29 08:30
大家知道,在实体Entity里面,可以使用java.sql.Date、java.sql.Timestamp、java.util.Date来映射到数据库的date、timestamp、datetime等字段
但是,java.sql.Date、java.sql.Timestamp、java.util.Date这些类都不好用,很多方法都过时了。
Java8里面新出来了一些API,LocalDate、LocalTime、LocalDateTime 非常好用
现在有如下Entity
@Entity@Table(name="users")public class User {@Id@GeneratedValue(strategy=GenerationType.IDENTITY)private Integer id;@Columnprivate String name;@Column(name="create_date")private LocalDate createDate;@Column(name="create_time")private LocalDateTime createTime;}
现在希望把createDate映射成表的date类型,createTime映射成datetime类型
如果大家使用的Hibernate的版本是5.2(我这里演示的版本是:5.2.4.Final)
Hibernate: create table users (id integer not null auto_increment, create_date date, create_time datetime, name varchar(255), primary key (id))
Hibernate: insert into users (create_date, create_time, name) values (?, ?, ?)
则可以看到,Hibernate可以支持Java8的日期和时间
但是,如果大家用的Hibernate的版本是5.1(我这里演示的版本是5.1.2.Final)及低版本,则可以看到
Hibernate: create table users (id integer not null auto_increment, create_date tinyblob, create_time tinyblob, name varchar(255), primary key (id))
Hibernate: insert into users (create_date, create_time, name) values (?, ?, ?)
大家可以看到,类型映射成tinyblob,不是我们想要的日期,时间类型
怎么解决呢?
加入如下依赖即可解决
<dependency><groupId>org.hibernate</groupId><artifactId>hibernate-java8</artifactId><version>5.1.2.Final</version></dependency>再次运行程序,发现
Hibernate: create table users (id integer not null auto_increment, create_date date, create_time datetime, name varchar(255), primary key (id))
Hibernate: insert into users (create_date, create_time, name) values (?, ?, ?)
发现可以正常支持Java8的日期,时间了
- JPA(Hibernate)中使用Java8的日期LocalDate、LocalDateTime
- mybatis中使用Java8的日期LocalDate、LocalDateTime
- JDBC中使用Java8的日期LocalDate、LocalDateTime
- JDBC中使用Java8的日期LocalDate、LocalDateTime
- mybatis中使用Java8的日期LocalDate、LocalDateTime
- Java8 LocalDate/LocalDateTime常用方法
- jdk1.8 日期新API LocalDateTime,LocalDate,LocalTime 在Hibernate中无法反序列化解决方法
- jdk1.8 日期新API LocalDateTime,LocalDate,LocalTime 在Hibernate中无法反序列化解决方法
- java8 LocalDate LocalDateTime等时间类介绍
- LocalDate LocalTime java8新的时间日期库及使用示例
- java8 新时间API用法实例(LocalDate、LocalTime、LocalDateTime)
- java8 Date,Timestamp,LocalDate,LocalTime,LocalDateTime,Instant互转
- LocalDate, LocalTime, LocalDateTime, and Instant表示时间点的日期-时间类的通用方法
- Date与LocalDate,LocalDateTime,LocalTime的转换
- springboot jdk8 LocalDate LocalDateTime jpa 映射字段是tinyblob 解决办法
- 如何在java8中愉快地处理日期和时间java8新增了localdate和localtim
- Java8中 Date和LocalDateTime的相互转换
- Java8中 LocalDate和java.sql.Date的相互转换
- sql server 日期与字符串转换
- [noip2012tg] 同余方程
- Android之使用Toast显示短小的信息
- 2>&1什么鬼?
- Mysql实现定时清空一张表的部分最老数据
- JPA(Hibernate)中使用Java8的日期LocalDate、LocalDateTime
- Java Calendar 类的时间操作
- HDOJ-----1568---Fibonacci数学题
- [Lintcode] Search a 2D Matrix II搜索二维矩阵 II
- 机房收费系统之结账总结
- LeetCode 433. Minimum Genetic Mutation
- 杭电oj 1050 Moving Tables的解法
- Volley封装
- jdbc直接连接access数据库