일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 호버
- egov spring ajax 사용 예시
- prisma
- angular route
- 옵저버블
- 스크롤 이벤트
- 아이오닉 스크롤 이벤트
- scroll
- Ionic modal
- TAILWIND
- ajax 사용 예시
- 스크롤 이벤트 감지
- 앵귤러 애니메이션
- Router
- angular animation
- mysql if
- 검색
- ApexChart
- route
- 모달
- Angular Router
- summary
- flex-1
- angular modal
- 앵귤러 모달
- 셀렉트박스 커스텀
- Oracle LISTAGG 사용 예시
- modal
- formgroup
- angular button
- Today
- Total
깜놀하는 해므찌로
Prisma Connect 설명 본문
// 지역 테이블
model District {
id String @id @default(uuid())
name String
bjdongs Bjdong[]
}
// 법정동 테이블
model Bjdong {
id String @id @default(uuid())
name String
code String
district District? @relation(fields: [districtId], references: [id])
districtId String?
}
async update(data: UpdateDistrictDTO, admin: AdminDTO): Promise<District> {
const bjdongIds = data.bjdongs.map((bjdong) => bjdong.id); // id 객체 배열로 재생성
const updated = await this.prismaService.district.update({
data: {
...data,
bjdongs: {
connect: bjdongIds.map((id) => ({ id })), // bjdong 테이블에 id 와 동일한 값을 조회하여 연결
},
},
where: { id: data.id },
});
return updated;
}
해당 코드는 `update` 메서드로, `UpdateDistrictDTO`와 `AdminDTO`를 입력받아서 `District`를 업데이트하는 기능을 수행합니다. 코드를 상세하게 분석해보겠습니다:
1. `bjdongIds` 변수 선언:
- `data.bjdongs` 배열에서 각 요소의 `id` 값을 추출하여 `bjdongIds` 배열에 저장합니다.
2. `updated` 변수 선언:
- `prismaService.district.update()` 메서드를 호출하여 `District` 업데이트를 수행합니다.
- `data` 객체와 `adminId` 값을 병합하고, `bjdongs` 필드에 연결(connect)할 `bjdong`들의 정보를 설정합니다.
- `bjdongIds.map((id) => ({ id }))`를 통해 `bjdongIds` 배열의 각 `id` 값을 가지는 객체 배열을 생성합니다. 이 객체 배열은 `bjdongs` 필드의 `connect` 옵션에 사용됩니다.
- `where` 절을 사용하여 업데이트할 `District`의 고유 식별자를 지정합니다.
3. `updated` 변수 반환:
- 업데이트된 `District` 객체를 반환합니다.
이 코드는 주어진 `UpdateDistrictDTO`와 `AdminDTO`를 사용하여 `District`를 업데이트하고, 해당 업데이트된 `District`를 반환하는 기능을 구현하고 있습니다. `bjdongs` 필드에 대한 연결(connect) 작업은 `bjdongIds` 배열의 각 `id` 값을 활용하여 수행됩니다.
`connect` 옵션은 Prisma의 연결 기능 중 하나로, 관계형 데이터베이스에서 관계를 설정할 때 사용됩니다. `bjdongs` 필드가 `District` 모델과 `Bjdong` 모델 간의 관계를 나타내는 필드라고 가정하겠습니다.
`bjdongIds.map((id) => ({ id }))`는 `bjdongIds` 배열의 각 요소에 대해 객체를 생성하는 과정입니다. 각 `id` 값을 가지는 객체를 생성하여 배열로 반환합니다.
예를 들어, `bjdongIds` 배열이 `[1, 2, 3]`인 경우, `bjdongIds.map((id) => ({ id }))`는 다음과 같은 배열을 생성합니다:
[
{ id: 1 },
{ id: 2 },
{ id: 3 }
]
이 배열은 Prisma의 `connect` 옵션에 사용되며, `bjdongs` 필드의 연결 작업에 활용됩니다. 각 객체는 `id` 필드를 가지며, 해당 `id` 값과 일치하는 `Bjdong` 데이터를 `District`의 `bjdongs` 필드와 연결(connect)합니다. 즉, `bjdongs` 필드에는 `id`가 1, 2, 3인 `Bjdong` 데이터가 연결됩니다.
이를 통해 `bjdongs` 필드에 여러 `Bjdong` 데이터를 연결할 수 있으며, `bjdongIds` 배열의 각 `id` 값을 가진 객체 배열을 생성하여 `connect` 옵션에 전달함으로써 이 연결 작업을 수행할 수 있습니다.
'IT' 카테고리의 다른 글
Angular faker 랜덤 이름 생성 (한국 이름) (0) | 2023.06.22 |
---|---|
Tailwind CSS 안 먹는 에러 해결 / tailwind css is not woriking / tailwind safeList (0) | 2023.06.22 |
Angular parameter prams router data pass example 두가지 방법 (0) | 2023.06.21 |
typescript mock data 생성 예시 / fake 한글 이름 랜덤 생성 (0) | 2023.06.21 |
Angular hover 시 목록 값 보여주기 예시 / 마우스 호버 (0) | 2023.06.21 |