ID informacji jawne czy nie?

0

Mam w aplikacji encję filmu z przykładową z mapowaną listą

   public class MovieEntity {
... 
    @OneToMany(mappedBy = "movie", cascade = CascadeType.ALL)
    private Set<MovieOtherTitle> otherTitles;
...
}

Lista posiadana inne obiekty, które są encjami

public class MovieOtherTitle extends MovieInfo {
    @Id
    @GeneratedValue
    private Long id;
...
}

Użytkownika ma możliwość pobrać listę tytułów danego filmu. W obecnym momencie rozwiązałem to w ten sposób. Obiekt DTO tytułu wygląda tak

public class OtherTitle {
    private int index; // Numer elementu na liście tytułów
    private String title;
    private CountryType country;
}

Podczas edycji danego tytułu, wystarczy, że użytkownik poda numer elementu. Więc użytkownik chce edytować tytuł o numerze 3 na liścia. Użytkownik zaznacz trzeci tytuł i przechodzi na stronę i zmienia tekst. W tym momencie, wcześniej zgłoszone usunięcie drugiego elementu przez innego użytkownika zostaje zaakceptowane przez weryfikatora, dzięki czemu tytuł o numerze 3 na liście posiada 2 numer, ale na stronie dalej jest podane, że użytkownik edytuje element o numerze 3. Gdy użytkownik poprawił co chciał i nacisnął edycja, wywołało kontroler i przesłał nowy tytuł dla trzeciego elementu i próbowało poprawić element 3 na liście tytułów filmu, a tu problem, bo lista tytułów wynosi tylko dwa.

Ten problem mógłby być rozwiązany w taki sposób, że podczas gdy użytkownik zaznaczy jaki tytuł chce poprawić. Np. trzeci tytuł. Po naciśnięciu przechodzi na stronę, gdzie element 3 pobiera swoje ID i przetrzymuje na stronie. I podczas wciśnięcia przycisku popraw do kontrolera wysyłany jest element z identyfikatorem ID w bazie, a nie numerem na liście.

Co o tym sądzicie?

0

Myślę, że wszystkie operacje update/delete powinny bazować tylko i wyłącznie na ID.

1 użytkowników online, w tym zalogowanych: 0, gości: 1