环回 Mysql 连接器:BIT(1) 始终被识别为真
Loopback Mysql Connector: BIT(1) is recognized always true
我正在使用 Loopback 3.22 和 loopback-connector-mysql 5.3.1.
当我配置环回以将 BIT(1)
mysql 列隐藏为 boolean
时,它总是 returns true
"isActive": {
"type": "Boolean",
"required": false,
"length": null,
"precision": 1,
"scale": null,
"mysql": {
"columnName": "is_active",
"dataType": "bit",
"dataLength": null,
"dataPrecision": 1,
"dataScale": null,
"nullable": "Y"
}
},
我在这里浪费了很多时间,我什至尝试使用 before save
钩子,但列类型验证之前就开始了。
将列设为 Binary
将问题推到前端。
这是 LoopBack 的 MySQL 连接器的已知错误,请参阅以下 GitHub 问题:https://github.com/strongloop/loopback-connector-mysql/issues/325
对于卡在此处的任何人,我修补了 MySQL.prototype.fromColumnValue
,以便让这个东西正常工作直到它被修复
let MySQL = require("loopback-connector-mysql/lib/mysql").MySQL;
...
case 'Boolean':
// extra case of Buffer(1)
if (val instanceof Buffer && val.length === 1) {
val = Boolean(val[0]);
} else {
// default case
val = Boolean(val);
}
...
我正在使用 Loopback 3.22 和 loopback-connector-mysql 5.3.1.
当我配置环回以将 BIT(1)
mysql 列隐藏为 boolean
时,它总是 returns true
"isActive": {
"type": "Boolean",
"required": false,
"length": null,
"precision": 1,
"scale": null,
"mysql": {
"columnName": "is_active",
"dataType": "bit",
"dataLength": null,
"dataPrecision": 1,
"dataScale": null,
"nullable": "Y"
}
},
我在这里浪费了很多时间,我什至尝试使用 before save
钩子,但列类型验证之前就开始了。
将列设为 Binary
将问题推到前端。
这是 LoopBack 的 MySQL 连接器的已知错误,请参阅以下 GitHub 问题:https://github.com/strongloop/loopback-connector-mysql/issues/325
对于卡在此处的任何人,我修补了 MySQL.prototype.fromColumnValue
,以便让这个东西正常工作直到它被修复
let MySQL = require("loopback-connector-mysql/lib/mysql").MySQL;
...
case 'Boolean':
// extra case of Buffer(1)
if (val instanceof Buffer && val.length === 1) {
val = Boolean(val[0]);
} else {
// default case
val = Boolean(val);
}
...