在环回中在控制器中执行直接查询

问题描述 投票:0回答:1

我已经开始使用loopback 4.我创建了一个默认的CRUD控制器,它具有基本的CRUD操作,可以获取“表数据”,“特定id的表记录”等等。我现在需要的是我想要执行自己的查询此表。如何在控制器中编写查询并执行它?

/ *下面是获取表数据的默认函数* /

@get('/customers', {
    responses: {
      '200': {
        description: 'Array of customers model instances',
        content: {
          'application/json': {
            schema: {type: 'array', items: {'x-ts-type': Customers}},
          },
        },
      },
    },
  })

  async find(
      @param.query.object('filter', getFilterSchemaFor(Customers)) filter?: Filter,
           : Promise<Customers[]> {
      if (limit > 100) limit = 100; // your logic
      return await this.CustomersRepository.find(filter);
  }

我想要的代码类型是,

执行(dataset,sqlstatement); //可以吗?

node.js controller loopback
1个回答
2
投票

最近由pull request #2681添加了对执行原始数据库查询的支持,此功能由Repository方法execute提供。

请注意,它们的查询格式是特定于连接器的。例如,如果您使用的是MySQL数据库,则可以编写以下查询:

await this.CustomersRepository.execute(
  // the query template, use "?" for variables to AVOID SQL INJECTIONS ATTACKS!
  'SELECT TOP ? * FROM CUSTOMERS',
  // the values to use for variables
  [limit]);
© www.soinside.com 2019 - 2024. All rights reserved.