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 5e529b94b..df0d306dd 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 @@ -36,6 +36,7 @@ import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.utils.JpaClassUtils; import org.springframework.data.repository.Repository; import org.springframework.util.Assert; @@ -53,29 +54,42 @@ import org.springframework.util.Assert; public class SimpleJpaRepository implements JpaRepository, JpaSpecificationExecutor { - private final JpaEntityInformation entityInformation; + private final JpaEntityInformation entityInformation; private final EntityManager em; private final PersistenceProvider provider; /** * Creates a new {@link SimpleJpaRepository} to manage objects of the given - * domain type. + * {@link JpaEntityInformation}. * - * @param entityMetadata + * @param entityInformation * @param entityManager */ - public SimpleJpaRepository(JpaEntityInformation entityMetadata, + public SimpleJpaRepository(JpaEntityInformation entityInformation, EntityManager entityManager) { - Assert.notNull(entityMetadata); + Assert.notNull(entityInformation); Assert.notNull(entityManager); - this.entityInformation = entityMetadata; + this.entityInformation = entityInformation; this.em = entityManager; this.provider = PersistenceProvider.fromEntityManager(entityManager); } + /** + * Creates a new {@link SimpleJpaRepository} to manage objects of the given + * domain type. + * + * @param domainClass + * @param em + */ + public SimpleJpaRepository(Class domainClass, EntityManager em) { + + this(JpaClassUtils.getMetadata(domainClass, em), em); + } + + private Class getDomainClass() { return entityInformation.getJavaType();