>백엔드 개발 >Golang >새 개체를 만든 후 중첩 엔터티를 반환하는 방법은 무엇입니까?

새 개체를 만든 후 중첩 엔터티를 반환하는 방법은 무엇입니까?

PHPz
PHPz앞으로
2024-02-10 21:40:15577검색

새 개체를 만든 후 중첩 엔터티를 반환하는 방법은 무엇입니까?

PHP에서는 새 개체를 만든 후 중첩된 엔터티를 반환하는 방법이 일반적인 질문입니다. 클래스에서 새로운 객체를 생성하고 이를 다른 엔터티의 속성으로 사용해야 할 때 몇 가지 기술과 방법에 주의를 기울여야 합니다. 먼저, 클래스 생성자에서 새 객체를 생성하고 이를 속성에 할당할 수 있습니다. 그런 다음 $this 키워드를 사용하여 현재 개체를 참조하고 해당 속성에 액세스할 수 있습니다. 또한 정적 메서드나 팩토리 패턴을 사용하여 새 객체를 생성하고 호출자에게 반환할 수도 있습니다. 방법에 관계없이 중첩된 엔터티를 반환하는 핵심은 개체 간의 관계를 올바르게 처리하고 개체가 엔터티 간에 데이터를 올바르게 상호 작용하고 전달하는지 확인하는 것입니다. 이러한 방법을 통해 PHP에서 중첩된 엔터티 개체를 쉽게 만들고 반환할 수 있습니다.

질문 내용

모델 account 包含嵌套结构 - currencyuser

데이터베이스에서 account의 새 인스턴스를 생성한 다음 응답으로 반환하면 중첩 엔터티가 비어 있습니다.

으아아아

이 문제를 방지하기 위해 별도의 쿼리를 사용하여 계정 변수를 새로 고칩니다.

으아아아

이것이 원하는 결과를 얻는 가장 효율적이고 올바른 방법입니까?

Solution

제가 보통 이런 상황을 어떻게 처리하는지 알려드리겠습니다. 먼저 코드를 공유하겠습니다.

main.go 파일

으아아아

여기서 데이터베이스 개체를 부트스트래핑하기 위한 코드를 추가하고 여기에 더미 데이터를 추가했습니다.

handlers/handlers.go 파일

으아아아

이 파일에서는 context 中传递的 db에서 실제로 데이터베이스와 통신합니다. 이제 질문으로 돌아갑니다.
통화//계정과 사용자/currency//account 和 user/account 之间的关系是 1:1 类型,那么,您应该依赖 preload 子句。这将在单独的查询中加载相关实体,而不是将其添加到 inner join의 관계가 1:1 유형인 경우 이면 preload 절을 사용해야 합니다. 이렇게 하면 관련 엔터티를 inner Join 절에 추가하는 대신 별도의 쿼리로 로드합니다.

문제가 해결되면 알려주세요. 감사합니다!

위 내용은 새 개체를 만든 후 중첩 엔터티를 반환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제