DB, ORM/🧊 typeORM

typeorm과 raw query를 조합하는 방법.

DarrenKwonDev 2021. 3. 25. 04:05

raw query를 사용하고 싶다면 아래와 같이 작성하면 된다. 

공식 문서에 따르면 EntityManager는 모든 엔티티를 관리하기 위한 단일 장소라고 한다.

getManager나 Connection을 통해서 얻을 수 있다. 여기서는 getManager를 이용해보자.

Using EntityManager you can manage (insert, update, delete, load, etc.) any entity. EntityManager is just like a collection of all entity repositories in a single place.
You can access the entity manager via getManager() or from Connection. Example how to use it:

 

import { getManager } from 'typeorm';


const entityManager = getManager();
const [data] = await entityManager.query(`
  select token from biz_msg_token where id = (select max(id) from biz_msg_token);
`);

 

 

일부분만 raw query를 사용하고 싶을 때는 Raw를 이용하면 된다.

import { Raw } from "typeorm"

const [restaurants, totalResults] = await this.restaurants.findAndCount({
   where: {
        name: Raw(name => `${name} ILIKE '%${query}%'`),
    },
    skip: (page - 1) * 25,
    take: 25,
});