Как преобразовать int в логическое значение в Avro + Spring Kafka? - PullRequest
0 голосов
/ 22 октября 2018

Я извлекаю строку данных из таблицы в MSSQL, столбец имеет тип «BIT».В реестре схем этот столбец, по-видимому, отображается на 'int8'.Если я вручную изменяю файл спецификации avro в моем весеннем проекте kafka, он выдает ошибку преобразования во время выполнения, говоря: «Найдено int, ожидая логическое значение».

, где / как мне преобразовать полученные 1 и 0 в логическое значение?Класс java создается из файла Avro.

Файл avro выглядит следующим образом:


    {
      "type": "record",
      "name": "UserInfo",
      "namespace": "com.poke.test.demo",
      "fields": [
        {
          "name": "ID",
          "type": "long"
        },
        {
          "name": "IsActive",
          "type": [
            "null",
            {
              "type": "int",
              "connect.type": "int8"
            }
          ],
          "default": null
        }
      ]
    }

Что я пытался сделать (предполагая, что он автоматически преобразуется):


    {
      "type": "record",
      "name": "UserInfo",
      "namespace": "com.poke.test.demo",
      "fields": [
        {
          "name": "ID",
          "type": "long"
        },
        {
          "name": "IsActive",
          "type": "boolean",
          "default": false
        }
      ]
    }

Любые указатели на то, как метод преобразования будет сгенерирован из avro, будут очень полезны.Как преобразование даты и времени генерируется из файла avro, когда мы указываем правильный тип (LogicalType).

...