I have problem with extracting data. I have next entities.
FilmSessions
@Table(name = "FILM_MANAGERS")
@Entity
public class FilmManager {
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "FILM_ID",updatable = false,insertable = false)
private Film film;
@OneToMany(cascade = CascadeType.REMOVE, fetch = FetchType.EAGER,mappedBy = "filmManager")
private List(FilmSession) sessions;
other fields....
}
@Entity
@Table(name = "FILMS")
public class Film {
@OneToOne(mappedBy = "film")
private FilmManager filmManager;
@OneToOne(mappedBy = "film")
private Ticket ticket;
other fields...
}
@Table(name = "TICKETS")
@Entity
public class Ticket {
@ManyToOne
@JoinColumn(name = "USER_ID", updatable = false, insertable = false)
@JsonBackReference
private User user;
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "FILM_ID", updatable = false, insertable = false)
private Film film;
}
@Table(name = "FILM_SESSIONS")
@Entity
public class FilmSession {
@ManyToOne
@JoinColumn(name = "FILM_MANAGER_ID",insertable = false, updatable = false)
private FilmManager filmManager;
}
@GetMapping("/films/{filmId}")
public String getFilm(ModelMap modelMap, @PathVariable("filmId") String filmId) {
FilmManager filmManager = filmManagerService.getFilm(Long.parseLong(filmId));
modelMap.addAttribute("filmManager", filmManager);
modelMap.addAttribute("screenshots", resourceExtractor.getScreenShots(filmManager));
modelMap.addAttribute("sessions", filmManager.getSessions().stream().map((e) -> e.getSessionTime()).collect(joining(",")));
System.out.println("amount of sessions: " + filmManager.getSessions().stream().count());
return "filmPage";
}
amount of sessions: 11
That last SOUT outputs 11 when on the screen you can see that i have only one session for this filmManager when it should be only one Session.I found out that everytime i insert a new Ticket in db amount of loaded sessions is getting bigger.so currently i have 11 tickets.What's wrong with this?
here is Tickets table picture
thanks everyone for help.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости