diff --git a/src/main/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupport.java b/src/main/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupport.java index 887414474..2d86ee422 100644 --- a/src/main/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupport.java +++ b/src/main/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupport.java @@ -58,11 +58,7 @@ public abstract class JpaEntityInformationSupport ex if (Persistable.class.isAssignableFrom(domainClass)) { return new JpaPersistableEntityInformation(domainClass, metamodel); } else { - try { - return new JpaMetamodelEntityInformation(domainClass, metamodel); - } catch (IllegalArgumentException e) { - return null; - } + return new JpaMetamodelEntityInformation(domainClass, metamodel); } } diff --git a/src/test/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupportUnitTests.java b/src/test/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupportUnitTests.java index fd474dc13..0b2bb84fd 100644 --- a/src/test/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupportUnitTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/support/JpaEntityInformationSupportUnitTests.java @@ -16,14 +16,18 @@ package org.springframework.data.jpa.repository.support; import static org.junit.Assert.*; +import static org.mockito.Mockito.*; import java.io.Serializable; import javax.persistence.Entity; +import javax.persistence.EntityManager; +import javax.persistence.metamodel.Metamodel; import javax.persistence.metamodel.SingularAttribute; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; /** @@ -34,6 +38,11 @@ import org.mockito.runners.MockitoJUnitRunner; @RunWith(MockitoJUnitRunner.class) public class JpaEntityInformationSupportUnitTests { + @Mock + EntityManager em; + @Mock + Metamodel metaModel; + @Test public void usesSimpleClassNameIfNoEntityNameGiven() throws Exception { @@ -44,6 +53,16 @@ public class JpaEntityInformationSupportUnitTests { assertEquals("AnotherNamedUser", second.getEntityName()); } + /** + * @see DATAJPA-93 + */ + @Test(expected = IllegalArgumentException.class) + public void rejectsClassNotBeingFoundInMetamodel() { + + when(em.getMetamodel()).thenReturn(metaModel); + JpaEntityInformationSupport.getMetadata(User.class, em); + } + static class User { }