Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[错误报告]: Java实体类中的java.util.Date属性映射到MySQL中的DATE类型字段,使用LambdaQuery查询时不能自动将java.util.Date的查询参数自动转型为java.sql.Date,导致无法查询出任何记录 #6422

Open
3 tasks done
luzhaoren opened this issue Aug 21, 2024 · 2 comments

Comments

@luzhaoren
Copy link

luzhaoren commented Aug 21, 2024

确认

  • 我的版本是最新版本, 我的版本号与 version 相同, 并且项目里无依赖冲突
  • 我已经在 issue 中搜索过, 确认问题没有被提出过
  • 我已经修改标题, 将标题中的 描述 替换为遇到的问题

当前程序版本

3.5.7

问题描述

  1. java实体类中定义的类型为java.util.Date的属性,该属性映射到MySQL中类型为date的字段,且在xml文件中指定了jdbcType="DATE"
  2. 当使用LabmdaQuery查询时,传入类型为java.util.Date的参数时,没有执行DateOnlyTypeHandler自动将java.util.Date转型为java.sql.Date,导致传入的查询参数是:==> Parameters: 2024-08-22 220:24:44.642(Timestamp)
  3. 当使用mapper.xml查询时,传入类型为java.util.Date的参数时,执行了DateOnlyTypeHandler自动将java.util.Date转型为java.sql.Date,此时执行的查询参数是:==> Parameters: 2024-08-22(Date)
  4. @TableName添加autoResultMap = true,而且添加@TableField(value = "report_date", jdbcType = JdbcType.DATE)再次执行时依然不能成功查询
  5. 个人理解这应该是因为@TableField的jdbcType=JdbcType.DATE并没有生效,不然的话mybatis是可以正常执行DateOnlyTypeHandler进行处理的

详细堆栈日志

No response

@2320316487
Copy link

我也碰到了这个问题,请问你现在是怎么解决的

@luzhaoren
Copy link
Author

我也碰到了这个问题,请问你现在是怎么解决的

格式化入参或者使用LocalDate,反正解决的不完美

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants