zeroDateTimeBehavior=convertToNull 在使用休眠的 jdbc url 中不起作用

Posted

技术标签:

【中文标题】zeroDateTimeBehavior=convertToNull 在使用休眠的 jdbc url 中不起作用【英文标题】:zeroDateTimeBehavior=convertToNull not working in jdbc url using hibernate 【发布时间】:2019-09-18 04:13:40 【问题描述】:

通过外部属性文件 url 指定如下 jdbc:mariadb://xxxxx:3306/xxxxx?zeroDateTimeBehavior=convertToNull

连接工作正常并且能够查询数据库。 通过休眠,我创建了一个实体,该实体映射到带有日期列的表。如果未指定日期,则默认插入零日期 (0000-00-00)。 当我从具有零日期的实体中获取日期时,它给出的日期显示为 00002-10-02 导致 java 日期无法处理为零的年或月/日。

zeroDateTimeBehavior=convertToNull 应该处理这个问题并返回 null 值,这样我就可以正确处理这些情况,而不会错误地返回一个完全错误的日期。

我已经阅读了大约 50 个论坛主题,但无法找到解决方案。 让我知道我是否可以提供更多信息。谢谢。

【问题讨论】:

您好,我知道您是新来的,请更新问题以包含Minimal, Complete, and Verifiable example 这表明您在使用 Hibernate 时使用了不同的连接和连接字符串。 【参考方案1】:

尝试使用 zeroDateTimeBehavior=CONVERT_TO_NULL,这对我有用。

我还从文档中找到了这个: https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-configuration-properties.html

zeroDateTimeBehavior

What should happen when the driver encounters DATETIME values that are composed entirely of zeros (used by MySQL to represent invalid dates)? 
Valid values are "EXCEPTION", "ROUND" and "CONVERT_TO_NULL".

Default: EXCEPTION

Since version: 3.1.4

【讨论】:

为我工作。尽管有很多资源指向使用zeroDateTimeBehavior=convertToNull

以上是关于zeroDateTimeBehavior=convertToNull 在使用休眠的 jdbc url 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Sqoop MySQL 8 迁移至Hadoop 3 提示:java.sql.SQLException: The connection property ‘zeroDateTimeBehavior‘

Keras 中的 conv2d 和 Conv2D 有啥区别?

CONV()

轻量级网络 Inception, Pointwise Conv, Group Conv, Depthwise Conv, Bottleneck, Xception, MobileNet, Shuffe

resNet conv1和传统conv2d层的区别

matlab中conv啥意思