Spring Data One-To-Many i Many-To-One

0

Witam.

Mam:

	@Entity
	public class Rozwiazanie {
	@ID
	@GeneratedValue(strategy=GenerationType.AUTO)
	private int roz_id;

	@ManyToOne()
	 private Zadanie zadanie;
}
@Entity
public class Zadanie {

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private int zad_id;

      @OneToMany(mappedBy="zadanie")
       private List<Rozwiazanie> rozwiazania;
}
public interface ZadanieDao extends CrudRepository<Zadanie, Integer>{
}

I teraz jeśli zrobię zadanieDao.findAll() pobierze mi Zadania wraz z rozwiązaniami. Załóżmy, że potrzebuję tylko zadania i będzie ich 9999 to pobieranie takiej ilości zadań wraz z rozwiązaniami (których nie potrzebuję bo np zadanie może mieć po 999 rozwiązań) będzie trwało bardzo długo.
W takiej sytuacji chciałbym pobrać tylko Zadania bez rozwiązań to muszę stworzyć nowy model np ZadaniaBezRozwiązań i tam usunąć 'private List<Rozwiazanie> rozwiazania' i korzystać z drugiego modelu ? Czy istnieje jakieś lepsze rowiązanie tego problemu?

3

Wykonując zadanieDao.findAll() zostaną pobrane same zadania bez rozwiązań, ponieważ domyślnie fetchType na adnotacji @OneToMany jest ustawiony na lazy (pobieranie tylko wtedy, gdy faktycznie będziesz ich potrzebował).

Lekcja na dziś:

  • ogarnięcie fetchType
  • ogarnięcie entity grafów

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