Vis*_*ker 2 java mysql hibernate jdbc mariadb
通过外部属性文件 url 指定为以下 jdbc:mariadb://xxxxx:3306/xxxxx?zeroDateTimeBehavior=convertToNull
连接工作正常并且能够查询数据库。通过休眠,我创建了一个映射到带有日期列的表的实体。如果未指定日期,则默认插入零日期 (0000-00-00)。当我从日期为零的实体中获取日期时,它会给出显示为 00002-10-02 的日期,因为 java 日期无法处理为零的年或月/日。
ZeroDateTimeBehavior=convertToNull 应该处理这个问题并返回空值,这样我就可以正确处理这些情况,而不会错误地返回完全错误的日期。
我阅读了大约 50 个论坛主题,但未能找到解决方案。如果我可以提供更多信息,请告诉我。谢谢。
尝试使用 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8319 次 |
| 最近记录: |