大家都知道,以前我们时间都用java.util.Date类型,但是现在都已经过时了,

Java8里面新出来了一些API,LocalDate、LocalTime、LocalDateTime 非常好用

实体类如下:

@Entity

@Table(name="users")

public class User {

@Id

@GeneratedValue(strategy=GenerationType.IDENTITY)

private Integer id;

@Column

private 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,不是我们想要的日期,时间类型,同时保存数据的时候也会有问题

我们想要数据库时间类型对应的是datetime类型

解决方案:

加入依赖包:

org.hibernate

hibernate-java8

5.1.2.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 (?, ?, ?)

发现可以正常支持Java8的日期时间了,问题解决

java8与hibernate_Hibernate 使用java8 LocalDateTime 注意事项相关推荐

  1. java8 mysql datetime_在JDBC中使用Java8的日期LocalDate、LocalDateTime

    在实体Entity里面,可以使用java.sql.Date.java.sql.Timestamp.java.util.Date来映射到数据库的date.timestamp.datetime等字段 但是 ...

  2. mybatis java8_mybatis如何使用Java8的日期LocalDate和LocalDateTime详解

    前言 相信大家应该都知道,在实体Entity里面,可以使用java.sql.Date.java.sql.Timestamp.java.util.Date来映射到数据库的date.timestamp.d ...

  3. java8 joda_Joda Time和Java8时差

    我正在寻找一个计算两个日期之间的月份的解决方案.我认为joda或java8时间可以做到.但是当我比较它们时,我发现了一些非常奇怪的东西. import java.text.ParseException ...

  4. 【爱上Java8】BigInteger在Java8中的改进

    BigInteger在Java8里增加了一组方法: 1 2 3 public byte byteValueExact() public int intValueExact() public long  ...

  5. java8 stringbuilder_有了Java8的“+”真的可以不要StringBuilder了吗

    最近在头条上看到一篇帖子,说Java8开始,字符串拼接时,"+"会被编译成StringBuilder,所以,字符串的连接操作不用再考虑效率问题了,事实真的是这样吗?要搞明白,还是要 ...

  6. java8 optional使用_[Java8]如何正确使用Optional

    Optional是Java8提供的为了解决null安全问题的一个API.善用Optional可以使我们代码中很多繁琐.丑陋的设计变得十分优雅.这篇文章是建立在你对Optional的用法有一定了解的基础 ...

  7. java8双层for循环,Java8处理List的双层循环问题

    Java处理List的双层循环程序员经常遇到,一般都是当两个List某个值满足某条件时候,进行相应的处理: 1.list和map之间的相互转换 /** * 两个List对象当id相同的时候(注意是两个 ...

  8. java8 wordcount_Spark2.x与Java8下WordCount示例

    spark深度学习指南+进阶实战2册 123.9元 包邮 (需用券) 去购买 > 不用 lambda 的基础版 import org.apache.spark.api.java.JavaPair ...

  9. java8 lambda 排序算法,Java8中排序算法比较器的三种写法(使用lambda表达式实现Comparator比较器)...

    在涉及到数组, 集合等这些地方经常会需要用到排序算法, 在Java中的Collections类中有sort方法, 除了需要传入一个Comparator比较器, 或者需要排序的类实现了Comparabl ...

最新文章

  1. sql中exists,not exists的用法
  2. 未来几年,BCH超越BTC的路径是什么?
  3. java刚工作搭建环境_Java开发环境的搭建
  4. SpringMVC的文件上传和拦截器
  5. git 使用_git使用指南
  6. 成为“能打”的二次元游戏《明日方舟》做对了什么?
  7. 信息学奥赛一本通(1105:数组逆序重存放)
  8. 灰度资产管理总规模升至460亿美元
  9. php 判断设备是手机还是平板还是pc
  10. 2021-4月最全停词表(1893个),速取
  11. 如何批量修改Word文档Mathtype公式字体
  12. Premiere Pro CC2019软件安装教程
  13. 使用K近邻对iris数据集进行分类
  14. ActivityManager的作用
  15. java-FFmpeg(一) 实现视频的转码和截图功能
  16. Android Netd ndc
  17. Java多线程+线程池
  18. 编译原理实验-用FLEX自动构造词法分析程序
  19. C语言 fprintf 函数 - C语言零基础入门教程
  20. 360Win10的360wifi无速度问题

热门文章

  1. life words
  2. oracle利用正则表达式判断字符串只包含数字
  3. 支持向量机SVM推导
  4. java工厂模式demo
  5. (六)Redis集群搭建
  6. centOS7忘记密码重置方法
  7. xcode工程编译错误:The maximum number of apps for free development profiles has been reached.
  8. .Net QQ互联教程 1
  9. 聊天IM的时间戳显示规则
  10. Javascript iframe交互并兼容各种浏览器的解决方案