From 6ab4599bd5ca2717bdce154a37c0db7c91cf9d7e Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Mon, 11 Apr 2011 15:04:36 +0200 Subject: [PATCH] Added convenience constructor in SimpleJpaRepository. --- .../support/SimpleJpaRepository.java | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) 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();