[Spring] 다대다 관계 업데이트 #190
Answered
by
PFCJeong
DoohyunHwang97
asked this question in
Q&A
-
val songArtists : HashSet<SongArtistEntity> = HashSet()
for (artistName in songInfo.artists) {
val artistEntity = artistRepository.findByName(artistName)
if (artistEntity == null) {
if (artist.get().name == artistName) {
songArtists.add(SongArtistEntity(song = song.get(), artist = artist.get()))
} else {
val newEntity = ArtistEntity(name = artistName)
artistRepository.save(newEntity)
songArtists.add(SongArtistEntity(song = song.get(), artist = newEntity))
}
} else {
songArtists.add(SongArtistEntity(song = song.get(), artist = artistEntity))
}
}
// 기존의 연결관계는 끊고 업데이트를 하는 것인지
song.get().artists = songArtists.toMutableList()
// save()를 해줘야 변경이 적용이 되는지?
songRepository.save(song.get()) 안녕하세요 질문이 다시 생겨서 다시 올립니다 |
Beta Was this translation helpful? Give feedback.
Answered by
PFCJeong
Nov 3, 2023
Replies: 1 comment 12 replies
-
안녕하세요~
song.artists += songAritsts |
Beta Was this translation helpful? Give feedback.
12 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
오 전체적인 코드를 보여주셔서 이제 이해가 가네요. 감사합니다 (_ _)
제가 세미나에서 강조했듯이, 트랜잭션-영속성 컨텍스트-스레드는 한 몸입니다. 우리가 사용하는 JPA의 모든 기능은 스레드 단위로 동작합니다.
현재 겪고 계시는 문제는 코드에서 위 속성을 고려하지 않지 않았기 때문입니다.