Bei der Arbeit mit JPA und Hibernate werden häufig zwei Arten von Joins verwendet: JOIN und JOIN FETCH. Lassen Sie uns ihre Unterschiede untersuchen und herausfinden, wann es angemessen ist, die einzelnen Typen zu verwenden.
FROM Employee emp JOIN emp.department dep
Diese Abfrage ruft alle Mitarbeiterentitäten ab, denen mindestens eine Abteilung zugeordnet ist. Das Ergebnis dieser Abfrage enthält die Mitarbeiterobjekte mit ihren träge geladenen Abteilungsobjekten. Dies bedeutet, dass Hibernate die Department-Objekte nicht bei der ersten Abfrage abruft, sondern erst dann, wenn zum ersten Mal auf sie zugegriffen wird.
FROM Employee emp JOIN FETCH emp.department dep
Im Gegensatz zu JOIN ist der JOIN Die FETCH-Abfrage lädt eifrig die Abteilungsobjekte, die den Mitarbeiterentitäten zugeordnet sind. Dies führt dazu, dass die Abteilungsobjekte während der ersten Abfrage abgerufen werden, anstatt später verzögert geladen zu werden.
Die Wahl zwischen JOIN und JOIN FETCH hängt von Ihren spezifischen Anwendungsanforderungen ab:
Das obige ist der detaillierte Inhalt vonJOIN vs. JOIN FETCH in JPA und Hibernate: Wann sollte ich beide verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!