English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Difference between lazy loading and eager loading in Hibernate

Lazy und Eager sind zwei Datenladestrategien in der ORM, z.B. Hibernate und EclipseLink. Wenn eine Entitätsklasse andere Entitäten referenziert (z.B. Employee und Phone (Telefon im Mitarbeiter)), verwenden wir diese Datenladestrategien. 

Verzögerte Ladevorgang-Die verknüpften Daten werden nur geladen, wenn wir die Getter- oder size-Methode ausdrücklich aufrufen.

  • Verwenden Sie den verzögerten Ladevorgang bei der Verwendung von ein-zu-viele-Sammlungen.

  • Verwenden Sie den verzögerten Ladevorgang, wenn Sie sicher sind, dass Sie keine verwandten Entitäten verwenden. 

Eiliger Ladevorgang-Die Datenladung erfolgt beim Abrufen des übergeordneten Elements.

  •  Wenn die Anzahl der Beziehungen nicht sehr hoch ist, verwenden Sie den 'Gierigen Ladevorgang'. Daher ist der eilige Ladevorgang eine gute Gewohnheit, um weitere Abfragen auf dem Server zu reduzieren.

  • Verwenden Sie den eiligen Ladevorgang, wenn Sie sicher sind, dass Sie die Hauptentität überall verwenden möchten.

NummerSchlüsselLangsamEilig
1
Extraktionsstrategie 
Bei der verzögerten Ladevorgang wird die verknüpften Daten nur geladen, wenn wir die Getter- oder size-Methode ausdrücklich aufrufen.
Bei der eiligen Ladevorgang wird die Datenladung bei der Abfrage des übergeordneten Elements stattfindet. 
2
Standardstrategie in der ORM-Schicht 
Standardmäßig verwenden ManyToMany und OneToMany-Beziehungen die Strategie der verzögerten Ladevorgänge.
Standardmäßig verwenden ManyToOne und OneToOne-Beziehungen die Strategie der verzögerten Ladevorgänge.
3
Ladekonfiguration
Es kann durch die Verwendung von Annotierungsparametern aktiviert werden:

fetch = FetchType.LAZY 
Es kann durch die Verwendung von Annotierungsparametern aktiviert werden:

fetch = FetchType.EAGER
 4
Leistung
Die Ladezeit beim ersten Start ist erheblich kürzer als bei der eiligen Ladevorgang.
Loading too much unnecessary data may affect performance