Type Orm QuerryBuilder 01
이번에는 Type orm의 QuerryBuilder에 대해서 알아보겠다. QuerryBuilder 간단한 CRUD 작업에 진행된다. 쿼리가 복잡해질 경우 ORM이 어떻게 제공되는지 기억이 나지 않거나 나의 ORM 실력이 부족할 때 typeorm이 최대한 sql 문과 최대한 비슷하게 만들어 놓은 것을 QuerryBuilder라고 한다. Repository 속성으로 createQurrybuilder가 있다. Repository 패턴을 싫어하는 분들께서는 manager에도 속성이 존재하기 때문에 다른 곳에서도 사용이 가능하다.
Example
하단에 관계도와 그에 맞는 쿼리문을 작성하여 예시를 들어보겠다.
user 테이블은 workpaces는 one to many 관계이다.
async getWorkspaceMember(url: string, id: number) {
return this.usersRepository
.createQueryBuilder('user') #createQuerryBuilder 속성은 별명이다.
.where('user.id = :id', { id }) #조건문으로 id값의 해당하는 유저를 갖고 온다.
.innerJoin('user.Workspaces', 'workspaces', 'workspaces.url = :url', {
url,
}) #id 값의 해당하는 user의 workspace를 갖고와서 url의 해당하는 값을 갖어온다. 두번째 인자도 alias로 별명이다.
.getOne(); #getOne은 값을 하나만 갖고온다.
자세한 셜명은 코드안에 넣어놨다.
.getMany & getRawMany difference
Row 출력은 좀더 DB 출력에 가깝게 갖고 온다.
ID, EMAIL, PASSWORD, Workspace.NAME, Workspace.URL --> getRawMany
ID, EMAIL, PASSWORD, Workspace{NAME: "소날두", URL : "http127.0.0.1"} -->getMany
Author And Source
이 문제에 관하여(Type Orm QuerryBuilder 01), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@baik9261/Type-Orm-QuerryBuilder저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)