Skip to content

Commit 679efbe

Browse files
committed
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.
1 parent 89d059f commit 679efbe

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,9 @@ public class SimpleJpaRepository<T, ID> implements JpaRepositoryImplementation<T
121121
private final EntityManager entityManager;
122122
private final PersistenceProvider provider;
123123

124+
private final String deleteAllQueryString;
125+
private final String countQueryString;
126+
124127
private @Nullable CrudMethodMetadata metadata;
125128
private ProjectionFactory projectionFactory;
126129
private EscapeCharacter escapeCharacter = EscapeCharacter.DEFAULT;
@@ -140,6 +143,9 @@ public SimpleJpaRepository(JpaEntityInformation<T, ?> entityInformation, EntityM
140143
this.entityManager = entityManager;
141144
this.provider = PersistenceProvider.fromEntityManager(entityManager);
142145
this.projectionFactory = new SpelAwareProxyProjectionFactory();
146+
147+
this.deleteAllQueryString = getDeleteAllQueryString();
148+
this.countQueryString = getCountQueryString();
143149
}
144150

145151
/**
@@ -309,7 +315,7 @@ public void deleteAll() {
309315
@Transactional
310316
public void deleteAllInBatch() {
311317

312-
Query query = entityManager.createQuery(getDeleteAllQueryString());
318+
Query query = entityManager.createQuery(deleteAllQueryString);
313319

314320
applyQueryHints(query);
315321

@@ -630,7 +636,7 @@ public <S extends T, R> R findBy(Example<S> example, Function<FetchableFluentQue
630636
@Override
631637
public long count() {
632638

633-
TypedQuery<Long> query = entityManager.createQuery(getCountQueryString(), Long.class);
639+
TypedQuery<Long> query = entityManager.createQuery(countQueryString, Long.class);
634640

635641
applyQueryHintsForCount(query);
636642

0 commit comments

Comments
 (0)