> 백엔드 개발 > Golang > SQLx는 데이터베이스 쿼리에서 중첩된 구조체 검색을 어떻게 효율적으로 처리할 수 있습니까?

SQLx는 데이터베이스 쿼리에서 중첩된 구조체 검색을 어떻게 효율적으로 처리할 수 있습니까?

Susan Sarandon
풀어 주다: 2024-12-10 11:00:13
원래의
467명이 탐색했습니다.

How Can SQLx Efficiently Handle Nested Struct Scanning in Database Queries?

SQLx를 사용한 중첩 구조체 검색

데이터베이스 조작 영역에서 중첩 구조체를 데이터베이스 엔터티로 검색하는 것은 문제가 될 수 있습니다. 다음 시나리오를 고려해 보겠습니다.

주어진 DB 모델:

type Customer struct {
   Id      int     `json:"id" db:"id"`
   Name    string  `json:"name" db:"name"`
   Address Address `json:"adress"`
}

type Address struct {
   Street string `json:"street" db:"street"`
   City   string `json:"city" db:"city"`
}
로그인 후 복사

난제:

채우기 시도 다음 코드를 사용하는 Customer 구조체는 다음의 거리 대상 필드를 나타내는 오류와 함께 실패합니다. *models.Customer가 누락되었습니다.

customer := models.Customer{}
err := db.Get(&customer, `select * from users where>
로그인 후 복사

해결책:

SQLx는 포함된 구조체를 사용하여 중첩된 구조체를 검색하는 강력한 솔루션을 제공합니다. Address를 개별 db 태그가 있는 필드로 선언하는 대신 이를 Customer:

type Customer struct {
   Id     int    `json:"id" db:"id"`
   Name   string `json:"name" db:"name"`
   Address
}
로그인 후 복사

에 삽입할 수 있습니다. 구조체를 삽입하면 Address 필드가 Customer로 승격되고 상위로부터 db 태그를 받습니다. 그런 다음 SQLx는 쿼리 결과에서 이러한 필드를 직접 채웁니다.

중요 참고:

이 접근 방식은 검색을 단순화하는 동시에 구조체의 JSON 출력도 평면화합니다. 원래 중첩 구조를 유지하려면 데이터베이스 구조를 대상 유형에 다시 매핑하는 것이 좋습니다.

위 내용은 SQLx는 데이터베이스 쿼리에서 중첩된 구조체 검색을 어떻게 효율적으로 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿