mysql:表和实体字段类型映射sql使用ifnull判空后导致类型转换出错

当在SQL查询中使用IFNULL函数处理Integer类型的字段时,返回值可能被转换为Long类型,导致与Java实体的Integer属性匹配失败,引发异常。解决方法是在SQL中使用CAST函数将字段转换为SIGNED INTEGER或直接加0,但IFNULL仍然可能导致问题。推荐使用CASE WHEN语句进行非空判断,以避免类型转换错误。
摘要由CSDN通过智能技术生成

使用 ifnull判空后导致返回类型变成了long类型:

实体属性类型为Integer包装类型,表字段类型为int类型,
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
sql这样写
在这里插入图片描述
在这里插入图片描述
使用ifnull函数判空后的返回值被转成了long类型,导致转换出错,因为IFNULL()返回一个数字或字符串值。

导致反射调用set方法时,报以下错误:
java.lang.IllegalArgumentException: Cannot invoke com.csg.comp.entity.vt.gk.VT_GK_CYYY.setYyjb on bean class ‘class com.csg.comp.entity.vt.gk.VT_GK_CYYY’ - argument type mismatch

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PostgreSQLMySQL之间的数据类型映射如下: - INT在PostgreSQL映射为INTEGER - VARCHAR在PostgreSQL映射为CHARACTER VARYING - TEXT在PostgreSQL映射为TEXT - DATE在PostgreSQL映射为DATE - TIME在PostgreSQL映射为TIME - TIMESTAMP在PostgreSQL映射为TIMESTAMP - TINYINT在PostgreSQL映射为SMALLINT - BIGINT在PostgreSQL映射为BIGINT - FLOAT在PostgreSQL映射为REAL - DOUBLE在PostgreSQL映射为DOUBLE PRECISION - DECIMAL在PostgreSQL映射为NUMERIC - TINYBLOB在PostgreSQL映射为BYTEA - ENUM在PostgreSQL中也映射为ENUM 这些是基本的数据类型映射规则,可以根据需要进行适当的调整和映射。 另外,值得一提的是,关于面向D语言的对象关系映射(ORM)框架,有一个名为hunt-entity的框架可以用于PostgreSQLMySQL。该框架类似于JPA学说,提供了对这两种数据库的支持。 而在MySQL中,权限映射是通过mysql库下的5个权限进行的,这些包括user、db、host、tables_priv和columns_priv。这种权限映射的方式在MySQL中被认为是简单清晰的,唯一的问题是缺少了权限角色的概念。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [能不能提供一下mysql和postgresql数据类型映射](https://blog.csdn.net/weixin_35752645/article/details/129618496)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [hunt-entity:面向D语言的对象关系映射(ORM)框架(类似于JPA学说),支持PostgreSQLMySQL](https://download.csdn.net/download/weixin_42131013/15081349)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [数据库:PostgreSQLMySQL对比](https://blog.csdn.net/xishining/article/details/106232788)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值