Was ist der Unterschied zwischen lazy = "true"
und fetch = "select" or "join"
? Welches ist dem anderen vorzuziehen?Unterschied zwischen FetchMode und FetchType
Grüße jayendra
Was ist der Unterschied zwischen lazy = "true"
und fetch = "select" or "join"
? Welches ist dem anderen vorzuziehen?Unterschied zwischen FetchMode und FetchType
Grüße jayendra
Lasst uns sagen, dass wir Entitäten wie dieses:
@Entity
@Table
public class Parent {
@Id
private Long id;
@OneToMany(mappedBy="parent", fetch = FetchType.EAGER)
@Fetch(FetchMode.JOIN)
private List<Child> child;
//getter setters
}
@Entity
@Table
public class Child {
@Id
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
private Parent parent;
//getter setter
}
Im obigen Beispiel, wenn Parent
Einheit bekommen, Ruhezustand wird mit beitreten automatisch eifrig alle child
Entitäten laden. Auf der anderen Seite, wenn Sie Child
, Parent
Entity abrufen wird nicht ausgewählt werden, es sei denn Sie nennen es explizit in Ihrem Code child.getParent()
.
FetchType (Lazy/Eager) gibt an, ob die Entity eifrig oder faul geladen werden soll, wenn Code aufgerufen wird.
FetchMode (Select/Join) gibt an, ob unsere Entität mit zusätzlichen Select- oder in einer Abfrage mit Join oder Subselect geladen werden soll.
FetchMode: Es definiert how
Hibernate (mit welcher Strategie, zum Beispiel Join, SubQuery usw.) werden Daten aus der Datenbank abgerufen werden.
FetchType: Er definiert whether
Ruhezustand werden die Daten holen oder nicht.
HINWEIS: FetchMode
ist nur anwendbar, wenn FetchType = EAGER
während Annotation.
FetchMode ist nicht nur mit FetchType.EAGER anwendbar. Die Regeln lauten wie folgt: a) Wenn Sie FetchMode nicht angeben, ist der Standardwert JOIN und FetchType normal. B) Wenn Sie FetchMode.JOIN explizit angeben, wird FetchType ignoriert und eine Abfrage ist immer eifrig. C) wenn Sie angeben FetchMode.SELECT oder FetchMode.SUBSELECT, FetchType.Type funktioniert normal. –
@ DawidStępień diese Info ist sehr hilfreich! – GMsoF
Dies online gefunden. Sehr hilfreich. http://www.solidsyntax.be/2013/10/17/fetching-collections-hibernate/ – Jake