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 중국어 웹사이트의 기타 관련 기사를 참조하세요!