Как получить верблюжью оболочку, используя PostgresDataSource в loopback? - PullRequest
0 голосов
/ 07 октября 2019

У нас есть приложение, в котором кто-то реализовал запрос, используя источник данных непосредственно в обратной петле. Я не разработчик, но сценарий использования - это фильтрация столбца, в котором нужно выполнить объединение, чтобы получить значение для фильтрации. Из-за этого варианта использования у нас есть что-то вроде этого (машинопись):

await this.dataSource.execute(`
    SELECT columnA, columnB, camelCaseColumn FROM tab1 a INNER JOIN tab2 c ON tab1.id = tab2.tab1Is AND columnFromTab2 = ${valueToFilterOn};`);

При выполнении запроса выше, результат будет иметь camelCaseColumn в нижнем регистре, как camelcasecolumn, где мне нужно этобыть в случае верблюда.

Есть ли вариант, который я могу предоставить, или что-то еще, что я могу сделать, чтобы получить это в случае верблюдаЯ почти уверен, что это возможно, поскольку это тот же источник данных, что и хранилища, и они возвращают его в правильном формате.

1 Ответ

2 голосов
/ 07 октября 2019

Проверьте файл MODEL_NAME.json и измените / добавьте параметр postgres.columnName к свойству.

    "camelCaseColumn": {
      "type": "String",
      "postgresql": {
        "columnName": "camelCaseColumn"
      }
    },

РЕДАКТИРОВАТЬ: я забыл lb4 не объявляет свойства модели подобным образом, поставьте настройкивнутри вашего декоратора собственности.

  @property({
    "postgresql": {
      "columnName": "camelCaseColumn"
    }
  })

source

Также вы рискуете получить этот запрос. Используйте подготовленное утверждение.

await this.dataSource.execute(`
  SELECT 
  columnA, columnB, camelCaseColumn 
  FROM tab1 a 
    INNER JOIN tab2 c ON tab1.id = tab2.tab1Is AND columnFromTab2 = ?;`
  ,[valueToFilterOn]);
...