diff --git a/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java b/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java index 8e943fd7a..27285e084 100644 --- a/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java +++ b/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java @@ -223,13 +223,13 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation entities = new ArrayList<>(); + // generate entity (proxies) without accessing the database. ids.forEach(id -> entities.add(getById(id))); deleteAllInBatch(entities); } else { + String queryString = String.format(DELETE_ALL_QUERY_BY_ID_STRING, entityInformation.getEntityName(), entityInformation.getIdAttribute().getName()); @@ -418,7 +418,7 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation results = new ArrayList(); + List results = new ArrayList<>(); for (ID id : ids) { findById(id).ifPresent(results::add); @@ -429,7 +429,7 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation idCollection = Streamable.of(ids).toList(); - ByIdsSpecification specification = new ByIdsSpecification(entityInformation); + ByIdsSpecification specification = new ByIdsSpecification<>(entityInformation); TypedQuery query = getQuery(specification, Sort.unsorted()); return query.setParameter(specification.parameter, idCollection).getResultList(); @@ -452,7 +452,7 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation findAll(Pageable pageable) { if (isUnpaged(pageable)) { - return new PageImpl(findAll()); + return new PageImpl<>(findAll()); } return findAll((Specification) null, pageable); @@ -489,7 +489,7 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation findAll(@Nullable Specification spec, Pageable pageable) { TypedQuery query = getQuery(spec, pageable); - return isUnpaged(pageable) ? new PageImpl(query.getResultList()) + return isUnpaged(pageable) ? new PageImpl<>(query.getResultList()) : readPage(query, getDomainClass(), pageable, spec); } @@ -511,7 +511,7 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation(example, escapeCharacter), example.getProbeType(), Sort.unsorted()) + .of(getQuery(new ExampleSpecification<>(example, escapeCharacter), example.getProbeType(), Sort.unsorted()) .getSingleResult()); } catch (NoResultException e) { return Optional.empty(); @@ -525,7 +525,7 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation long count(Example example) { return executeCountQuery( - getCountQuery(new ExampleSpecification(example, escapeCharacter), example.getProbeType())); + getCountQuery(new ExampleSpecification<>(example, escapeCharacter), example.getProbeType())); } /* @@ -549,7 +549,7 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation List findAll(Example example) { - return getQuery(new ExampleSpecification(example, escapeCharacter), example.getProbeType(), Sort.unsorted()) + return getQuery(new ExampleSpecification<>(example, escapeCharacter), example.getProbeType(), Sort.unsorted()) .getResultList(); } @@ -559,7 +559,7 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation List findAll(Example example, Sort sort) { - return getQuery(new ExampleSpecification(example, escapeCharacter), example.getProbeType(), sort).getResultList(); + return getQuery(new ExampleSpecification<>(example, escapeCharacter), example.getProbeType(), sort).getResultList(); } /* @@ -636,7 +636,7 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation result = new ArrayList(); + List result = new ArrayList<>(); for (S entity : entities) { result.add(save(entity)); @@ -676,7 +676,6 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation implements JpaRepositoryImplementation Page readPage(TypedQuery query, final Class domainClass, Pageable pageable, @Nullable Specification spec) { @@ -711,7 +709,6 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation getQuery(@Nullable Specification spec, Pageable pageable) { @@ -725,7 +722,6 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation TypedQuery getQuery(@Nullable Specification spec, Class domainClass, Pageable pageable) { @@ -739,7 +735,6 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation getQuery(@Nullable Specification spec, Sort sort) { return getQuery(spec, getDomainClass(), sort); @@ -751,7 +746,6 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation TypedQuery getQuery(@Nullable Specification spec, Class domainClass, Sort sort) { @@ -772,7 +766,6 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation implements JpaRepositoryImplementation TypedQuery getCountQuery(@Nullable Specification spec, Class domainClass) { @@ -801,7 +793,7 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation emptyList()); + query.orderBy(Collections.emptyList()); return em.createQuery(query); } @@ -812,7 +804,6 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation Root applySpecificationToCriteria(@Nullable Specification spec, Class domainClass, CriteriaQuery query) { @@ -858,7 +849,6 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation query) { @@ -930,8 +920,8 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation example, EscapeCharacter escapeCharacter) { diff --git a/src/test/java/org/springframework/data/jpa/repository/RepositoryWithCompositeKeyTests.java b/src/test/java/org/springframework/data/jpa/repository/RepositoryWithCompositeKeyTests.java index c6260fac9..ac4c22938 100644 --- a/src/test/java/org/springframework/data/jpa/repository/RepositoryWithCompositeKeyTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/RepositoryWithCompositeKeyTests.java @@ -18,6 +18,7 @@ package org.springframework.data.jpa.repository; import static org.assertj.core.api.Assertions.*; import java.util.Arrays; +import java.util.Collections; import java.util.List; import javax.persistence.EntityManager; @@ -113,7 +114,7 @@ public class RepositoryWithCompositeKeyTests { } @Test // DATAJPA-472, DATAJPA-912 - void shouldSupportFindAllWithPageableAndEntityWithIdClass() throws Exception { + void shouldSupportFindAllWithPageableAndEntityWithIdClass() { IdClassExampleDepartment dep = new IdClassExampleDepartment(); dep.setName("TestDepartment"); @@ -121,7 +122,7 @@ public class RepositoryWithCompositeKeyTests { IdClassExampleEmployee emp = new IdClassExampleEmployee(); emp.setDepartment(dep); - emp = employeeRepositoryWithIdClass.save(emp); + employeeRepositoryWithIdClass.save(emp); Page page = employeeRepositoryWithIdClass.findAll(PageRequest.of(0, 1)); @@ -130,7 +131,7 @@ public class RepositoryWithCompositeKeyTests { } @Test // DATAJPA-2414 - void shouldSupportDeleteAllByIdInBatchWithIdClass() throws Exception { + void shouldSupportDeleteAllByIdInBatchWithIdClass() { IdClassExampleDepartment dep = new IdClassExampleDepartment(); dep.setName("TestDepartment"); @@ -143,7 +144,7 @@ public class RepositoryWithCompositeKeyTests { IdClassExampleEmployeePK key = new IdClassExampleEmployeePK(emp.getEmpId(), dep.getDepartmentId()); assertThat(employeeRepositoryWithIdClass.findById(key)).isNotEmpty(); - employeeRepositoryWithIdClass.deleteAllByIdInBatch(Arrays.asList(key)); + employeeRepositoryWithIdClass.deleteAllByIdInBatch(Collections.singletonList(key)); em.flush(); em.clear(); @@ -170,7 +171,7 @@ public class RepositoryWithCompositeKeyTests { EmbeddedIdExampleEmployee emp2 = new EmbeddedIdExampleEmployee(); emp2.setEmployeePk(new EmbeddedIdExampleEmployeePK(2L, null)); emp2.setDepartment(dep1); - emp2 = employeeRepositoryWithEmbeddedId.save(emp2); + employeeRepositoryWithEmbeddedId.save(emp2); EmbeddedIdExampleEmployee emp3 = new EmbeddedIdExampleEmployee(); emp3.setEmployeePk(new EmbeddedIdExampleEmployeePK(1L, null)); @@ -206,7 +207,7 @@ public class RepositoryWithCompositeKeyTests { IdClassExampleEmployee emp2 = new IdClassExampleEmployee(); emp2.setEmpId(2L); emp2.setDepartment(dep1); - emp2 = employeeRepositoryWithIdClass.save(emp2); + employeeRepositoryWithIdClass.save(emp2); IdClassExampleEmployee emp3 = new IdClassExampleEmployee(); emp3.setEmpId(1L); @@ -276,7 +277,7 @@ public class RepositoryWithCompositeKeyTests { IdClassExampleEmployee emp1 = new IdClassExampleEmployee(); emp1.setEmpId(3L); emp1.setDepartment(dep2); - emp1 = employeeRepositoryWithIdClass.save(emp1); + employeeRepositoryWithIdClass.save(emp1); IdClassExampleDepartment dep1 = new IdClassExampleDepartment(); dep1.setDepartmentId(1L); @@ -285,7 +286,7 @@ public class RepositoryWithCompositeKeyTests { IdClassExampleEmployee emp2 = new IdClassExampleEmployee(); emp2.setEmpId(2L); emp2.setDepartment(dep1); - emp2 = employeeRepositoryWithIdClass.save(emp2); + employeeRepositoryWithIdClass.save(emp2); IdClassExampleEmployeePK emp1PK = new IdClassExampleEmployeePK(); emp1PK.setDepartment(2L);