Sql server 带SQL Server的SpringBoot JdbcTemplate:不支持从未知到未知的转换

Sql server 带SQL Server的SpringBoot JdbcTemplate:不支持从未知到未知的转换,sql-server,jdbc,spring-data,spring-jdbc,jdbctemplate,Sql Server,Jdbc,Spring Data,Spring Jdbc,Jdbctemplate,我有一个SpringBoot应用程序。使用JdbcTemplate连接到SQL Server DB的,使用以下语法: int numOfRowsAffected = remoteJdbcTemplate.update( "insert into dbo.[ATRESMEDIA Resource Time Registr_] " + "( [Entry No_], [Record ID], [Posting Date], [Resource No_], [Job

我有一个SpringBoot应用程序。使用JdbcTemplate连接到SQL Server DB的,使用以下语法:

int numOfRowsAffected = remoteJdbcTemplate.update(
        "insert into dbo.[ATRESMEDIA Resource Time Registr_]  " +
        "( [Entry No_], [Record ID], [Posting Date], [Resource No_], [Job No_], [Work Type], [Quantity], [Unit of Measure], [Description], [Company Name], [Created Date-Time], [Status] ) " +
                " VALUES (?,?,?,?,?,?,?,?,?,?,?,?);",

                atresMediaTimeRegistr.getEntryNo(),
                "Record ID",
                atresMediaTimeRegistr.getPostingDate(),
                atresMediaTimeRegistr.getResourceNo(),
                atresMediaTimeRegistr.getJobNo(),
                atresMediaTimeRegistr.getWorkType(),
                atresMediaTimeRegistr.getQuantity(),
                atresMediaTimeRegistr.getUnitOfMeasure(),
                atresMediaTimeRegistr.getDescription(),
                atresMediaTimeRegistr.getCompanyName(),
                atresMediaTimeRegistr.getCreatedDate(),
                1);
其中
[Record ID]
varbinary
类型,但我得到了这个错误

Caused by: org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [insert into dbo.[ATRESMEDIA Resource Time Registr_]  ( [Entry No_], [Record ID], [Posting Date], [Resource No_], [Job No_], [Work Type], [Quantity], [Unit of Measure], [Description], [Company Name], [Created Date-Time], [Status] )  VALUES (?,?,?,?,?,?,?,?,?,?,?,?);]; SQL state [S0003]; error code [257]; Implicit conversion from data type nvarchar to varbinary is not allowed. Use the CONVERT function to run this query.; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: Implicit conversion from data type nvarchar to varbinary is not allowed. Use the CONVERT function to run this query.

您的问题有一个答案:
…不允许从数据类型nvarchar隐式转换为varbinary…
您正在尝试将字符串作为varbinary传递。首先你必须这样做
byte[]varBinary=“record_ID”.getBytes(StandardCharsets.UTF_8)
然后将其作为记录ID参数放入jdbcTemplate中。
祝你好运,希望能有所帮助