해결된 질문
작성
·
64
0
아래 처럼 Post 또는 Tag 테이블에 값이 들어가면서 post_model_tags_tag_model 테이블에 값이 반영이 되는데요
실무에서는 실질적으로 Post 또는 Tag 테이블이 기존에 가지고 있던 값을 활용해서 post_model_tags_tag_model 테이블이 업데이트 되는 경우가 많은데요
즉, Post_1 이라는 Post 테이블의 값에 Tag_1만 적용되어 있었는데 추후에 Tag_2를 하려면 어떻게 해야하나요? 무조건 Post 테이블에 값을 삽입하면서 post_model_tags_tag_model 테이블에 값을 넣어줘야 하나요?
@Post('posts/tags')
async createPostTags() {
//post_model 테이블에 삽입
const post1 = await this.postRepository.save({
title: 'NestJs Lecture',
});
// post_model 테이블에 삽입
const post2 = await this.postRepository.save({
title: 'Programming Lecture',
});
// post_model_tags_tag_model 테이블에 삽입
const tag1 = await this.tagRepository.save({
name: 'javascript',
posts: [post1, post2],
});
// post_model_tags_tag_model 테이블에 삽입
const tag2 = await this.tagRepository.save({
name: 'typescript',
posts: [post1],
});
// post_model_tags_tag_model 테이블에 삽입
const post3 = await this.postRepository.save({
title: 'NestJs Lecture',
tags: [tag1, tag2],
});
return true;
}
답변 2
0
안녕하세요!
Many to Many Relation에 관계를 추가하는 방법에 대한 질문으로 해석했는데 맞을까요?
아래와 같이 추가하고 싶은 관계만 넣어줄 수 있습니다.
await dataSource
.createQueryBuilder()
.relation(Post, "categories")
.of(post)
.add(category)
링크 레퍼런스 드립니다.
https://orkhan.gitbook.io/typeorm/docs/relational-query-builder
감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다.
Full Stack 개발자님의 질문은 실무에서 Many-to-Many 관계를 효율적으로 업데이트하는 방법에 대한 것입니다. 특히, 이미 존재하는 Post
와 Tag
관계를 추가로 업데이트하는 방법에 대한 부분이 궁금하신 것 같습니다.
TypeORM을 활용하여 Many-to-Many 관계를 설정할 때, 두 테이블(예: Post
와 Tag
) 간의 중간 테이블(post_model_tags_tag_model)을 통해 관계가 관리됩니다. 기존에 존재하는 Post
테이블의 특정 데이터에 새로운 태그를 추가하고 싶은 경우, 아래와 같은 방법으로 처리할 수 있습니다:
tags
필드에 새로운 태그를 추가합니다.아래는 코드 예시입니다:
async addTagToPost(postId: number, newTag: Tag) {
// postId를 통해 기존 포스트 로드
const post = await this.postRepository.findOne({
where: { id: postId },
relations: ['tags'], // 기존에 연결된 태그들도 함께 로드
});
if (post) {
// 태그 추가
post.tags.push(newTag);
// 변경된 포스트 저장
await this.postRepository.save(post);
return true;
}
return false;
}
이와 같이, 이미 존재하는 Post
객체에 Tag
를 추가하면 TypeORM이 자동으로 중간 테이블을 업데이트하여 Post
와 Tag
간의 관계가 갱신됩니다.
유사한 상황을 다룬 질문들을 통해 더 많은 예시와 답변을 확인할 수 있습니다:
“many to many relations update를 할 경우 질문 드립니다.”
이 질문에서는 새로운 태그를 추가할 때의 방법을 설명하고 있습니다.
“post 업데이트 코드 이렇게 작성해도 되나요?”
patchPost
메소드 내에서 save
메소드를 이용한 업데이트 관련 질문입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.