Loopback Mysql Connector: BIT (1) всегда распознается - PullRequest
0 голосов
/ 20 октября 2018

Я использую Loopback 3.22 с loopback-connector-mysql 5.3.1.

Когда я настраиваю loopback для скрытия 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 переносит проблему на внешний интерфейс.

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

для любого, кто застрял здесь, я грязно пропатчен 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);
        }
...
0 голосов
/ 22 октября 2018

Это известная ошибка коннектора MySQL от LoopBack, см. Следующую проблему GitHub: https://github.com/strongloop/loopback-connector-mysql/issues/325

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...