在利用Hibernate框架时,mysql数据库字段类型是datetime,java实体对应的是Date类型。 在进行数据插入的时候,原先是直接插入new Date() 插入过程未报错。但在数据库中显示的时间是0000-00-00 00:00:00 导致在查询的时候报错。
经过网上查阅资料,说是实体与数据库字段映射不正确。
按照普遍的修改方式在数据库连接url增加参数zeroDateTimeBehavior=convertToNull未成功。本身数据库改字段设置的默认值为null.
最后终于查到一种修改方式将实体中的类型变为 sql.timestamp类型 在设置插入数据时变为如下:
String time = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”).format(new Date());
orders.setOrdertime(Timestamp.valueOf(nowTime));
数据插入成功 查询时也未继续报错。