kod źródłowy do zagadnienia:
https://gist.github.com/waldemarGr/3663b48756eb73d47220293f2685003e
Spring boot jpaRepository
Mam problem z duplikatami przy imlementacji JpaRepository.
• Istnieje encja Book która jako pole posiada zmienną(encje) klasy WordsInBook
• Encja WordsInBook posiada pole(encje) klasy English
• Encja English posiada dwa znaczące pola których kombinacja powinna zapewnić unikatowość PartOfSpeach partOfSpeach(enum) i String word
Czyli mamy następujące zależnośći: Book<-WordsInBooks<-English<- word + partOfSpeach
w RunAtStart.java w wierszu 48 wykonuje save na bookRepository który implementuje interfejs JpaRepository
przy wykonaniu save na bookRepository każda z encji zapisuje się poprawnie. Czyli save powodujer zaspis Book <-WordsInBooks<-English<- word + partOfSpeach.
Pytanie jak przygotować repozytorium/encje aby obsługiwać duplikaty ( zgodnie z zamyłem poniżej)?
W RunAtStart.java w wierszu 64 ponownie dokonuje zapisu. Obiekt nadrzędny Book został zmodyfikowany(nowy obiekt) lecz obiekty English są takie same. Czyli 2 różne książki posiadają ten sam zestaw słów. Chcę doprowadzić aby druga książka dostała id na bazie danych ( referencje do English) już istniejących obiektów na bazie danych. Unikalność Obiektów English mają wynikać z dwóch pól word + partOfSpeach
Na ten moment zgaduję że można posłużyć się indexem z tych pól lecz nie wiem jak to poprawnie zaimplementować.
English.java wiersz 11
@Entity
@Table(indexes = { @Index(name = "IDX_MYIDX1", columnList = "word,partOfSpeach" ) })
public class English implements Word {
Proszę o wskazówkę jak zapewnić unikatowość obiektów na baize danych.