Wierzę, że istnieją tylko dwa sposoby ładowania obiektów za pomocą Hibernate i to jest leniwe ładowanie, a jeden jest chętny do ładowania. Leniwe ładowanie ma swoje zalety, nie ładuje wielu obiektów, ale tylko wtedy, gdy ich potrzebujesz. Dowiedziałem się również, że jeśli chcesz wymusić załadowanie wszystkich dzieci dla obiektu, możesz po prostu zadzwonić pod numer parent.getChildren().size()
. Więc powiedzmy, że mamy następujące obiektykiedy używać Lazy loading/Eager loading in hibernate?
@Entity
public class Customer{
public Set<Order> order;
}
@Entity
public class Order{
}
Załóżmy mamy klientów, który dokonał zamówienia w naszym systemie, a może to być więcej niż jeden, a nawet zerowa. Tak więc moje pytanie brzmi: czy nie lepiej jest zawsze używać szybkiego ładowania w tym przypadku? potrzebujemy rozmiaru lub informacji dotyczących zamówienia związanego z klientem. Jaka jest korzyść z używania leniwego ładowania w tej sytuacji, czy są jakieś korzyści?
Staram się zrozumieć, gdzie należy korzystać z leniwego ładowania i gdzie należy korzystać z szybkiego ładowania, bardzo doceniam twój wgląd.
Całkowicie się zgodziłem, pisanie dwóch osobnych zapytań jest o wiele lepsze niż używanie leniwych/chętnych do ładowania. Dzięki za wyjaśnienie. –
@hvgotcodes Czy możesz wyjaśnić, jak osiągnąć punkt # 7? –