해결된 질문
작성
·
217
2
Note라는 엔티티와 Tag라는 Entity가 있는데 서로 M:N 구조여서 매핑 테이블을 사이에 두고 쪼개주었습니다.
그런데 Note를 save할 때, Tag가 기존에 있던 태그라면 매핑 테이블에만 정보를 추가해주고, 아니라면 Tag 테이블에 추가되는 식으로 구현을 하고 싶습니다.
for (String tagName : tags) {
Optional<Tag> optionalTag = tagRepository.findTagByTagName(tagName);
Tag tag = optionalTag.orElseGet(() ->
Tag.builder()
.tagName(tagName)
.activated(true)
.build()
);
NoteTag noteTag = NoteTag.builder()
.tag(tag)
.note(note)
.build();
note.getNoteTags().add(noteTag);
}
noteRepository.save(note);
이런식으로 구현을 했는데, 생각을 해보니까 태그의 개수가 많을 경우 조회를 많이하게 될 것 같더라고요.
어떻게 해결을 해야 한 번만 조회를 해오도록 할 수 있을까요?
강의를 다 보질 않아서 혹시 강의로 해설이 된 내용이 있다면 그 부분을 찾아서 보겠습니다. 흑흑...