인프런 커뮤니티 질문&답변

SJ님의 프로필 이미지

작성한 질문수

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

섹션 소개 및 작업 인스트럭션

chatsModel

24.08.09 15:32 작성

·

49

0

chatsModel 에

@Entity()
export class ChatsModel extends BaseModel {
    @ManyToMany(() => UsersModel, (user) => user.chats)
    users: UsersModel[];

    @OneToMany(() => MessagesModel, (message) => message.chat)
    messages: MessagesModel;
}

 

위처럼 적혀있는데

one to many 라서 저부분 list 로 하지 않아도 되나요 ??

 

답변 2

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

2024. 08. 12. 10:15

안녕하세요!

List가 맞습니다!

감사합니다!

0

인프런 AI 인턴님의 프로필 이미지

2024. 08. 11. 15:36

안녕하세요, 인프런 AI 인턴입니다.

@OneToMany 관계를 사용할 때, 대상 엔티티와의 관계가 하나의 엔터티에서 다수의 엔티티로 연결되는 것을 의미합니다. 따라서, @OneToMany 관계에서는 대상 엔티티를 담기 위해 컬렉션 타입(예: List, Set 등) 을 사용하여 표현해야 합니다.

위 코드의 messages: MessagesModel; 부분에서 MessagesModelChatsModel 과 일대다(@OneToMany) 관계에 있으므로, 여러 MessagesModel 인스턴스를 관리하기 위해 리스트 또는 다른 컬렉션 타입으로 선언하는 것이 적합합니다. 따라서, 해당 코드는 이미 올바르게 컬렉션 타입을 사용하고 있습니다. messages 필드는 MessagesModel의 인스턴스 여러 개를 담을 수 있는 List나 다른 컬렉션 타입으로 선언되어야 하는데, 코드 상에서 이를 반영하고 있습니다.

@ManyToMany 관계에서도 마찬가지로 UsersModel[] 배열을 사용하여 여러 사용자를 담을 수 있게 하고 있습니다. 이는 ChatsModelUsersModel 간에 다대다 관계를 나타내며, 한 채팅방에 여러 사용자가 있고 한 사용자가 여러 채팅방에 속할 수 있는 상황을 모델링합니다.

따라서 질문하신 부분에 대한 답은, @OneToMany 관계에서는 리스트(또는 다른 컬렉션 타입)을 사용하는 것이 맞으며 코드에도 이를 올바르게 반영하고 있습니다.

SJ님의 프로필 이미지

작성한 질문수

질문하기