Vermeidung mehrfacher Datenabrufe durch den First-Level-Cache in Spring Data JPA
Wenn du dich mit der Backendentwicklung auf der JVM befasst, wirst du sicherlich auf die Java Persistence API (JPA) stoßen. Ein bekanntes Implementierungsframework dafür ist Hibernate. In diesem Artikel zeigen wir dir, wie du in Spring Data JPA mit caching die Performance deiner Anwendung optimieren kannst, indem du verhinderst, dass gleiche Ressourcen mehrfach abgerufen werden.
Was ist der First-Level-Cache?
Spring Data JPA verwendet Hibernate als Standard-ORM (Object-Relational Mapping), das einen eingebauten First-Level-Cache anbietet. Jede Session hat ihren eigenen Cache, den wir als First-Level-Cache bezeichnen. Jedes Mal, wenn du ein Objekt (oder genauer gesagt eine Entity-Instanz) aus der Datenbank abrufst, wird es zuerst im First-Level-Cache gespeichert. Bei wiederholtem Abrufen desselben Objekts wird es direkt aus dem Cache und nicht aus der Datenbank geholt. Das kann zur Datenwiederholung führen und die Performance beeinträchtigen.