数据插入报错

【TDengine 使用环境】
生产环境 /测试/ Poc/预生产环境

【TDengine 版本】

image

【操作系统以及版本】

NAME=“CentOS Linux”
VERSION=“7 (Core)”
ID=“centos”
ID_LIKE=“rhel fedora”
VERSION_ID=“7”
PRETTY_NAME=“CentOS Linux 7 (Core)”
ANSI_COLOR=“0;31”
CPE_NAME=“cpe:/o:centos:centos:7”
HOME_URL=“https://www.centos.org/
BUG_REPORT_URL=“https://bugs.centos.org/

CENTOS_MANTISBT_PROJECT=“CentOS-7”
CENTOS_MANTISBT_PROJECT_VERSION=“7”
REDHAT_SUPPORT_PRODUCT=“centos”
REDHAT_SUPPORT_PRODUCT_VERSION=“7”
【部署方式】容器/非容器部署
容器

【集群节点数】
容器单机

【集群副本数】
容器单机
【描述业务影响】
数据插入报错

【问题复现路径/shan】做过哪些操作出现的问题

taos-jdbcdriver 3.6.0 ws链接
【遇到的问题:问题现象及影响】

private String msgId;

private Long deviceId;

private Long productId;

private String tbname;

private String uid;


/**
 * 消息类型
 * property:属性
 * event:事件
 * service:服务
 */
private String type;

/**
 * 标识符:上线,下线,注册,属性上报,事件上报,服务调用,OTA升级,配置下发
 */
private String identifier;

/**
 * 设备ip地址
 */
private String ip;

/**
 * 消息状态码
 */
private Integer code;


/**
 * 原始报文
 *
 */
private String data;

/**
 * 消息上报时间
 */
private Timestamp ts;

【资源配置】
4c12g

【报错完整截图】

SQL: INSERT INTO thing_model_message ( msg_id, device_id, product_id, tbname, type, identifier, ip, code, data, ts ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )

Cause: java.lang.ClassCastException: class [B cannot be cast to class java.lang.String ([B and java.lang.String are in module java.base of loader ‘bootstrap’)

at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:199)
at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:333)
... 41 common frames omitted

Caused by: java.lang.ClassCastException: class [B cannot be cast to class java.lang.String ([B and java.lang.String are in module java.base of loader ‘bootstrap’)
at com.taosdata.jdbc.common.SerializeBlock.getColumnSize(SerializeBlock.java:459)
at com.taosdata.jdbc.common.SerializeBlock.getTagTotalLength(SerializeBlock.java:408)
at com.taosdata.jdbc.common.SerializeBlock.getStmt2BindBlock(SerializeBlock.java:497)
at com.taosdata.jdbc.ws.AbsWSPreparedStatement.executeBatchImpl(AbsWSPreparedStatement.java:1083)
at com.taosdata.jdbc.ws.AbsWSPreparedStatement.executeUpdate(AbsWSPreparedStatement.java:185)
at com.taosdata.jdbc.ws.AbsWSPreparedStatement.execute(AbsWSPreparedStatement.java:121)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58)
at jdk.proxy3/jdk.proxy3.$Proxy188.execute(Unknown Source)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:48)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:75)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
at jdk.proxy2/jdk.proxy2.$Proxy186.update(Unknown Source)
at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)
at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:61)
at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)
at jdk.proxy2/jdk.proxy2.$Proxy185.update(Unknown Source)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
at jdk.proxy2/jdk.proxy2.$Proxy185.update(Unknown Source)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)
… 45 common frames omitted

这个是任何SQL 都写入失败,还是偶发写入失败?

任何的,但是RS链接是可以的

请确保 nchar 对应的属性,映射为 jdbc 的 nchar,用 setNString 来设置。

此话题已在最后回复的 10 天后被自动关闭。不再允许新回复。