loopbackmysql连接器:位(1)始终为true

wbgh16ku  于 2021-06-19  发布在  Mysql
关注(0)|答案(2)|浏览(367)

我正在使用loopback 3.22和loopback connector mysql 5.3.1。
当我将环回配置为covert时 BIT(1) mysql列为 boolean 它总是回来 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` 把问题推到最前端。
6mzjoqzu

6mzjoqzu1#

对于任何被困在这里的人,我都给他打了补丁 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);
        }
...
dgiusagp

dgiusagp2#

这是loopback的mysql连接器的一个已知错误,请参阅以下github问题:https://github.com/strongloop/loopback-connector-mysql/issues/325

相关问题