菜鸟在开发时遇到的情况,开发用mysql,测试用H2,在写单元测试时发现mysql和h2数据查询结果不同,测试不通过,个人解决办法
一、mysql
mysql中没有布尔型 boolean=tinyint(1)
mysql 中 tinyint(1) 0代表false,其他数字代表true
二、H2
tinyint(1) 值的范围为: -128 到 127.
对应到Java类型: java.lang.Byte.
解决办法:
野路子:把tyint转成int
SELECT
//...
CASE 列名 WHEN 0 THEN 0 WHEN 1 THEN 1 END AS 别名,
//...
from
//...
正路:更改数据库配置文件或更改数据库该字段类型或长度