执行WSO2 DSS插入查询时遇TEXT数据类型不支持错误的问询
解决WSO2 DSS插入MySQL TEXT类型字段的参数不支持问题
我之前也碰到过WSO2 DSS处理MySQL TEXT类型参数的同款问题,其实核心原因是DSS的sqlType参数遵循JDBC标准类型,而非数据库专属类型——虽然TEXT是MySQL合法字段类型,但DSS并不直接识别TEXT作为输入参数的sqlType值。
具体解决方案
把application_UID参数的sqlType从TEXT替换为JDBC标准类型LONGVARCHAR即可,这是MySQL TEXT类型对应的JDBC映射类型。
修改后的查询配置片段如下:
<query id="insert_user" returnGeneratedKeys="true" useConfig="user_db"> <sql> insert into User( application_UID, country_id, localization_id, local_user_id, isActive, isFullProfile ) values( :application_UID, :country_id, :localization_id, :local_user_id, :is_active, :is_full_profile ) </sql> <result element="GeneratedKeys" rowName="Entry" useColumnNumbers="true"> <element column="1" name="ID" xsdType="integer"/> </result> <param name="application_UID" sqlType="LONGVARCHAR"/> <!-- 这里修改为LONGVARCHAR --> <param name="country_id" sqlType="BIGINT"/> <param name="localization_id" sqlType="BIGINT"/> <param name="local_user_id" sqlType="BIGINT"/> <param name="is_active" sqlType="BIT"/> <param name="is_full_profile" sqlType="BIT"/> </query>
额外说明
如果你的字段是MySQL的MEDIUMTEXT或LONGTEXT类型,同样可以使用LONGVARCHAR作为sqlType,JDBC会自动处理和数据库类型的映射。修改完成后,再用DSS的Try It工具调用AddUser操作,就能正常插入TEXT类型的application_UID值了。
内容的提问来源于stack exchange,提问作者AndreaNobili
相关产品推荐
相关产品推荐

