首页 > 解决方案 > 将 0x00 插入 H2 嵌入式数据库二进制(1)类型列给出“值太长”错误

问题描述

当我尝试将值 0x00 插入类型为 binary(1) 的列中时,出现错误:

Value too long for column "SUMMARY VARBINARY(1)": "X'00000000' (4)";

为什么/如何将单字节 0x00 值转换为 4 字节值?这是在测试上下文中,我想使用实际表的列类型(二进制(1))。

这是 H2 版本 1.4.200;Spring Boot 2.4.4 版;mssql-jdbc:8.4.1.jre8

标签: springh2mssql-jdbc

解决方案


通过添加MODE=MSSQLServer用于创建 HikariConfig bean 的 jdbc-url 属性来解决,该属性又用于创建 HikariDataSource bean:

具体来说,在我的 application-test.properties 我现在有

spring.datasource.jdbc-url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;MODE=MSSQLServer


推荐阅读