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

Odpowiedz Nowy wątek
2017-03-03 14:33
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?

edytowany 3x, ostatnio: MMarcin, 2017-03-03 14:34

Pozostało 580 znaków

2017-03-03 14:41

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
edytowany 3x, ostatnio: miszasty93, 2017-03-03 14:43

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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