From ecdade561c202b4142a79d9f622374cc1e701d35 Mon Sep 17 00:00:00 2001 From: Giheon Do Date: Sun, 15 Jun 2025 16:41:19 +0900 Subject: [PATCH 1/2] Cache query strings in SimpleJpaRepository Cache the deleteAll and count query strings as final fields in SimpleJpaRepository. This avoids repeated String.format operations and reduces unnecessary object creation on every invocation of deleteAllInBatch() and count(). No functional changes. Signed-off-by: Giheon Do --- .../jpa/repository/support/SimpleJpaRepository.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java index bebe618fe2..360c8668ea 100644 --- a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java +++ b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java @@ -121,6 +121,9 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation entityInformation, EntityM this.entityManager = entityManager; this.provider = PersistenceProvider.fromEntityManager(entityManager); this.projectionFactory = new SpelAwareProxyProjectionFactory(); + + this.deleteAllQueryString = getDeleteAllQueryString(); + this.countQueryString = getCountQueryString(); } /** @@ -309,7 +315,7 @@ public void deleteAll() { @Transactional public void deleteAllInBatch() { - Query query = entityManager.createQuery(getDeleteAllQueryString()); + Query query = entityManager.createQuery(deleteAllQueryString); applyQueryHints(query); @@ -630,7 +636,7 @@ public R findBy(Example example, Function query = entityManager.createQuery(getCountQueryString(), Long.class); + TypedQuery query = entityManager.createQuery(countQueryString, Long.class); applyQueryHintsForCount(query); From 397ec356a81ed1f72af80f09a8cad60cf565746e Mon Sep 17 00:00:00 2001 From: Giheon Do Date: Sun, 15 Jun 2025 16:42:42 +0900 Subject: [PATCH 2/2] Add author Signed-off-by: Giheon Do --- .../data/jpa/repository/support/SimpleJpaRepository.java | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java index 360c8668ea..135a3010d9 100644 --- a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java +++ b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java @@ -104,6 +104,7 @@ * @author Diego Krupitza * @author Seol-JY * @author Joshua Chen + * @author Dockerel */ @Repository @Transactional(readOnly = true)