Browse Source

Polishing.

See #3134
pull/3212/head
Greg L. Turnquist 2 years ago
parent
commit
cd5b4e7b4f
No known key found for this signature in database
GPG Key ID: CB2FA4D512B5C413
  1. 50
      spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryImpl.java
  2. 6
      spring-data-jpa/src/main/java/org/springframework/data/jpa/provider/HibernateUtils.java
  3. 11
      spring-data-jpa/src/main/java/org/springframework/data/jpa/provider/JpaClassUtils.java
  4. 17
      spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryExtension.java
  5. 1
      spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryTransformerSupport.java
  6. 1
      spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/Meta.java
  7. 10
      spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/ParameterMetadataProvider.java
  8. 1
      spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/QueryUtils.java
  9. 1
      spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/EntityManagerBeanDefinitionRegistrarPostProcessor.java
  10. 1
      spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/Querydsl.java
  11. 5
      spring-data-jpa/src/main/java/org/springframework/data/jpa/util/BeanDefinitionUtils.java

50
spring-data-envers/src/main/java/org/springframework/data/envers/repository/support/EnversRevisionRepositoryImpl.java

@ -15,7 +15,15 @@ @@ -15,7 +15,15 @@
*/
package org.springframework.data.envers.repository.support;
import static org.springframework.data.history.RevisionMetadata.RevisionType.*;
import jakarta.persistence.EntityManager;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import org.hibernate.Hibernate;
import org.hibernate.envers.AuditReader;
import org.hibernate.envers.AuditReaderFactory;
@ -43,13 +51,6 @@ import org.springframework.data.repository.history.support.RevisionEntityInforma @@ -43,13 +51,6 @@ import org.springframework.data.repository.history.support.RevisionEntityInforma
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import static org.springframework.data.history.RevisionMetadata.RevisionType.*;
/**
* Repository implementation using Hibernate Envers to implement revision specific query methods.
*
@ -61,6 +62,8 @@ import static org.springframework.data.history.RevisionMetadata.RevisionType.*; @@ -61,6 +62,8 @@ import static org.springframework.data.history.RevisionMetadata.RevisionType.*;
* @author Mark Paluch
* @author Sander Bylemans
* @author Niklas Loechte
* @author Donghun Shin
* @author Greg Turnquist
*/
@Transactional(readOnly = true)
public class EnversRevisionRepositoryImpl<T, ID, N extends Number & Comparable<N>>
@ -73,12 +76,12 @@ public class EnversRevisionRepositoryImpl<T, ID, N extends Number & Comparable<N @@ -73,12 +76,12 @@ public class EnversRevisionRepositoryImpl<T, ID, N extends Number & Comparable<N
* Creates a new {@link EnversRevisionRepositoryImpl} using the given {@link JpaEntityInformation},
* {@link RevisionEntityInformation} and {@link EntityManager}.
*
* @param entityInformation must not be {@literal null}.
* @param entityInformation must not be {@literal null}.
* @param revisionEntityInformation must not be {@literal null}.
* @param entityManager must not be {@literal null}.
* @param entityManager must not be {@literal null}.
*/
public EnversRevisionRepositoryImpl(JpaEntityInformation<T, ?> entityInformation,
RevisionEntityInformation revisionEntityInformation, EntityManager entityManager) {
RevisionEntityInformation revisionEntityInformation, EntityManager entityManager) {
Assert.notNull(revisionEntityInformation, "RevisionEntityInformation must not be null!");
@ -136,7 +139,6 @@ public class EnversRevisionRepositoryImpl<T, ID, N extends Number & Comparable<N @@ -136,7 +139,6 @@ public class EnversRevisionRepositoryImpl<T, ID, N extends Number & Comparable<N
return Revisions.of(revisionList);
}
private AuditOrder mapRevisionSort(RevisionSort revisionSort) {
return RevisionSort.getRevisionDirection(revisionSort).isDescending() //
@ -154,9 +156,9 @@ public class EnversRevisionRepositoryImpl<T, ID, N extends Number & Comparable<N @@ -154,9 +156,9 @@ public class EnversRevisionRepositoryImpl<T, ID, N extends Number & Comparable<N
for (Sort.Order order : sort) {
AuditProperty<Object> property = AuditEntity.property(order.getProperty());
AuditOrder auditOrder = order.getDirection().isAscending() ?
property.asc() :
property.desc();
AuditOrder auditOrder = order.getDirection().isAscending() //
? property.asc() //
: property.desc();
result.add(auditOrder);
}
@ -169,9 +171,9 @@ public class EnversRevisionRepositoryImpl<T, ID, N extends Number & Comparable<N @@ -169,9 +171,9 @@ public class EnversRevisionRepositoryImpl<T, ID, N extends Number & Comparable<N
AuditQuery baseQuery = createBaseQuery(id);
List<AuditOrder> orderMapped = (pageable.getSort() instanceof RevisionSort revisionSort) ?
Collections.singletonList(mapRevisionSort(revisionSort)) :
mapPropertySort(pageable.getSort());
List<AuditOrder> orderMapped = (pageable.getSort()instanceof RevisionSort revisionSort)
? List.of(mapRevisionSort(revisionSort))
: mapPropertySort(pageable.getSort());
orderMapped.forEach(baseQuery::addOrder);
@ -235,17 +237,17 @@ public class EnversRevisionRepositoryImpl<T, ID, N extends Number & Comparable<N @@ -235,17 +237,17 @@ public class EnversRevisionRepositoryImpl<T, ID, N extends Number & Comparable<N
return metadata instanceof DefaultRevisionEntity defaultRevisionEntity //
? new DefaultRevisionMetadata(defaultRevisionEntity, revisionType) //
: new AnnotationRevisionMetadata<>(Hibernate.unproxy(metadata), RevisionNumber.class, RevisionTimestamp.class,
revisionType);
revisionType);
}
private static RevisionMetadata.RevisionType convertRevisionType(RevisionType datum) {
return switch (datum) {
case ADD -> INSERT;
case MOD -> UPDATE;
case DEL -> DELETE;
default -> UNKNOWN;
};
return switch (datum) {
case ADD -> INSERT;
case MOD -> UPDATE;
case DEL -> DELETE;
default -> UNKNOWN;
};
}
}

6
spring-data-jpa/src/main/java/org/springframework/data/jpa/provider/HibernateUtils.java

@ -26,6 +26,8 @@ import org.springframework.lang.Nullable; @@ -26,6 +26,8 @@ import org.springframework.lang.Nullable;
* @author Oliver Gierke
* @author Mark Paluch
* @author Jens Schauder
* @author Donghun Shin
* @author Greg Turnquist
* @since 1.10.2
* @soundtrack Benny Greb - Soulfood (Live, https://www.youtube.com/watch?v=9_ErMa_CtSw)
*/
@ -54,8 +56,8 @@ public abstract class HibernateUtils { @@ -54,8 +56,8 @@ public abstract class HibernateUtils {
// Try the old way, as it still works in some cases (haven't investigated in which exactly)
if (query instanceof Query) {
return ((Query<?>) query).getQueryString();
if (query instanceof Query<?> hibernateQuery) {
return hibernateQuery.getQueryString();
} else {
throw new IllegalArgumentException("Don't know how to extract the query string from " + query);
}

11
spring-data-jpa/src/main/java/org/springframework/data/jpa/provider/JpaClassUtils.java

@ -28,6 +28,8 @@ import org.springframework.util.ClassUtils; @@ -28,6 +28,8 @@ import org.springframework.util.ClassUtils;
* @author Oliver Gierke
* @author Christoph Strobl
* @author Jens Schauder
* @author Donghun Shin
* @author Greg Turnquist
*/
abstract class JpaClassUtils {
@ -45,12 +47,9 @@ abstract class JpaClassUtils { @@ -45,12 +47,9 @@ abstract class JpaClassUtils {
*/
public static boolean isEntityManagerOfType(EntityManager em, String type) {
EntityManager entityManagerToUse = em;
Object delegate = em.getDelegate();
if (delegate instanceof EntityManager delegateEntityManager) {
entityManagerToUse = delegateEntityManager;
}
EntityManager entityManagerToUse = em.getDelegate()instanceof EntityManager delegate //
? delegate //
: em;
return isOfType(entityManagerToUse, type, entityManagerToUse.getClass().getClassLoader());
}

17
spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/cdi/JpaRepositoryExtension.java

@ -15,6 +15,14 @@ @@ -15,6 +15,14 @@
*/
package org.springframework.data.jpa.repository.cdi;
import jakarta.enterprise.event.Observes;
import jakarta.enterprise.inject.UnsatisfiedResolutionException;
import jakarta.enterprise.inject.spi.AfterBeanDiscovery;
import jakarta.enterprise.inject.spi.Bean;
import jakarta.enterprise.inject.spi.BeanManager;
import jakarta.enterprise.inject.spi.ProcessBean;
import jakarta.persistence.EntityManager;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import java.util.HashMap;
@ -24,14 +32,6 @@ import java.util.Map.Entry; @@ -24,14 +32,6 @@ import java.util.Map.Entry;
import java.util.Optional;
import java.util.Set;
import jakarta.enterprise.event.Observes;
import jakarta.enterprise.inject.UnsatisfiedResolutionException;
import jakarta.enterprise.inject.spi.AfterBeanDiscovery;
import jakarta.enterprise.inject.spi.Bean;
import jakarta.enterprise.inject.spi.BeanManager;
import jakarta.enterprise.inject.spi.ProcessBean;
import jakarta.persistence.EntityManager;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.data.repository.cdi.CdiRepositoryBean;
@ -44,6 +44,7 @@ import org.springframework.data.repository.cdi.CdiRepositoryExtensionSupport; @@ -44,6 +44,7 @@ import org.springframework.data.repository.cdi.CdiRepositoryExtensionSupport;
* @author Oliver Gierke
* @author Mark Paluch
* @author Christoph Strobl
* @author Donghun Shin
*/
public class JpaRepositoryExtension extends CdiRepositoryExtensionSupport {

1
spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryTransformerSupport.java

@ -18,6 +18,7 @@ import org.springframework.util.ObjectUtils; @@ -18,6 +18,7 @@ import org.springframework.util.ObjectUtils;
* Transformational operations needed to support either {@link HqlQueryTransformer} or {@link JpqlQueryTransformer}.
*
* @author Greg Turnquist
* @author Donghun Shin
* @since 3.1
*/
class JpaQueryTransformerSupport {

1
spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/Meta.java

@ -27,6 +27,7 @@ import org.springframework.util.StringUtils; @@ -27,6 +27,7 @@ import org.springframework.util.StringUtils;
* Value object to hold metadata about repository methods.
*
* @author Greg Turnquist
* @author Donghun Shin
* @since 3.0
* @see org.springframework.data.jpa.repository.Meta
*/

10
spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/ParameterMetadataProvider.java

@ -18,7 +18,12 @@ package org.springframework.data.jpa.repository.query; @@ -18,7 +18,12 @@ package org.springframework.data.jpa.repository.query;
import jakarta.persistence.criteria.CriteriaBuilder;
import jakarta.persistence.criteria.ParameterExpression;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.function.Supplier;
import java.util.stream.Collectors;
@ -46,6 +51,8 @@ import org.springframework.util.ObjectUtils; @@ -46,6 +51,8 @@ import org.springframework.util.ObjectUtils;
* @author Jens Schauder
* @author Andrey Kovalev
* @author Yuriy Tsarkov
* @author Donghun Shin
* @author Greg Turnquist
*/
class ParameterMetadataProvider {
@ -275,7 +282,6 @@ class ParameterMetadataProvider { @@ -275,7 +282,6 @@ class ParameterMetadataProvider {
}
if (value instanceof Collection<?> collection) {
return collection.isEmpty() ? null : collection;
}

1
spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/QueryUtils.java

@ -80,6 +80,7 @@ import org.springframework.util.StringUtils; @@ -80,6 +80,7 @@ import org.springframework.util.StringUtils;
* @author Simon Paradies
* @author Vladislav Yukharin
* @author Chris Fraser
* @author Donghun Shin
*/
public abstract class QueryUtils {

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

@ -43,6 +43,7 @@ import org.springframework.orm.jpa.SharedEntityManagerCreator; @@ -43,6 +43,7 @@ import org.springframework.orm.jpa.SharedEntityManagerCreator;
* @author Oliver Gierke
* @author Réda Housni Alaoui
* @author Mark Paluch
* @author Donghun Shin
*/
public class EntityManagerBeanDefinitionRegistrarPostProcessor implements BeanFactoryPostProcessor, Ordered {

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

@ -48,6 +48,7 @@ import com.querydsl.jpa.impl.JPAQuery; @@ -48,6 +48,7 @@ import com.querydsl.jpa.impl.JPAQuery;
* @author Mark Paluch
* @author Christoph Strobl
* @author Marcus Voltolim
* @author Donghun Shin
*/
public class Querydsl {

5
spring-data-jpa/src/main/java/org/springframework/data/jpa/util/BeanDefinitionUtils.java

@ -18,6 +18,8 @@ package org.springframework.data.jpa.util; @@ -18,6 +18,8 @@ package org.springframework.data.jpa.util;
import static java.util.Arrays.*;
import static org.springframework.beans.factory.BeanFactoryUtils.*;
import jakarta.persistence.EntityManagerFactory;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@ -25,8 +27,6 @@ import java.util.HashSet; @@ -25,8 +27,6 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
import jakarta.persistence.EntityManagerFactory;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.ListableBeanFactory;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
@ -43,6 +43,7 @@ import org.springframework.util.ObjectUtils; @@ -43,6 +43,7 @@ import org.springframework.util.ObjectUtils;
*
* @author Oliver Gierke
* @author Mark Paluch
* @author Donghun Shin
*/
public final class BeanDefinitionUtils {

Loading…
Cancel
Save