DATAJPA-19 - Adapted generics changes.

This commit is contained in:
Oliver Gierke
2011-03-11 16:24:28 +01:00
parent d4fe867a16
commit 3128fe2e14
15 changed files with 85 additions and 47 deletions

View File

@@ -49,7 +49,7 @@ public class QueryLookupStrategyTests {
@Test
public void assertUseDeclaredQuery() {
JpaRepositoryFactoryBean<?> factory =
JpaRepositoryFactoryBean<?, ?, ?> factory =
context.getBean("&roleRepository",
JpaRepositoryFactoryBean.class);

View File

@@ -36,7 +36,7 @@ public class CustomGenericJpaRepository<T, ID extends Serializable> extends
* @param domainClass
* @param entityManager
*/
public CustomGenericJpaRepository(JpaEntityInformation<T> metadata,
public CustomGenericJpaRepository(JpaEntityInformation<T, ID> metadata,
EntityManager entityManager) {
super(metadata, entityManager);

View File

@@ -55,7 +55,7 @@ public class CustomGenericJpaRepositoryFactory extends JpaRepositoryFactory {
protected Object getTargetRepository(RepositoryMetadata metadata,
EntityManager em) {
JpaEntityInformation<Object> entityMetadata =
JpaEntityInformation<Object, Serializable> entityMetadata =
mock(JpaEntityInformation.class);
when(entityMetadata.getJavaType()).thenReturn(
(Class<Object>) metadata.getDomainClass());

View File

@@ -15,6 +15,8 @@
*/
package org.springframework.data.jpa.repository.custom;
import java.io.Serializable;
import javax.persistence.EntityManager;
import org.springframework.data.jpa.repository.JpaRepository;
@@ -28,8 +30,8 @@ import org.springframework.data.repository.support.RepositoryFactorySupport;
* @author Gil Markham
* @author Oliver Gierke
*/
public class CustomGenericJpaRepositoryFactoryBean<T extends JpaRepository<?, ?>>
extends JpaRepositoryFactoryBean<T> {
public class CustomGenericJpaRepositoryFactoryBean<T extends JpaRepository<Object, Serializable>>
extends JpaRepositoryFactoryBean<T, Object, Serializable> {
/*
* (non-Javadoc)

View File

@@ -19,6 +19,7 @@ import static org.junit.Assert.*;
import static org.mockito.Matchers.*;
import static org.mockito.Mockito.*;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
@@ -49,7 +50,7 @@ import org.springframework.data.repository.support.RepositoryFactorySupport;
@RunWith(MockitoJUnitRunner.class)
public class JpaRepositoryFactoryBeanUnitTests {
JpaRepositoryFactoryBean<SimpleSampleRepository> factoryBean;
JpaRepositoryFactoryBean<SimpleSampleRepository, User, Integer> factoryBean;
@Mock
EntityManager entityManager;
@@ -79,7 +80,7 @@ public class JpaRepositoryFactoryBeanUnitTests {
// Setup standard factory configuration
factoryBean =
new DummyJpaRepositoryFactoryBean<SimpleSampleRepository>();
new DummyJpaRepositoryFactoryBean<SimpleSampleRepository, User, Integer>();
factoryBean.setRepositoryInterface(SimpleSampleRepository.class);
factoryBean.setEntityManager(entityManager);
}
@@ -128,12 +129,13 @@ public class JpaRepositoryFactoryBeanUnitTests {
@Test(expected = IllegalArgumentException.class)
public void preventsUnsetRepositoryInterface() throws Exception {
factoryBean = new JpaRepositoryFactoryBean<SimpleSampleRepository>();
factoryBean =
new JpaRepositoryFactoryBean<SimpleSampleRepository, User, Integer>();
factoryBean.afterPropertiesSet();
}
private class DummyJpaRepositoryFactoryBean<T extends JpaRepository<?, ?>>
extends JpaRepositoryFactoryBean<T> {
private class DummyJpaRepositoryFactoryBean<T extends JpaRepository<S, ID>, S, ID extends Serializable>
extends JpaRepositoryFactoryBean<T, S, ID> {
/*
* (non-Javadoc)

View File

@@ -18,6 +18,7 @@ package org.springframework.data.jpa.repository.support;
import static junit.framework.Assert.*;
import java.io.IOException;
import java.io.Serializable;
import javax.persistence.EntityManager;
@@ -45,7 +46,7 @@ public class JpaRepositoryFactoryUnitTests {
@Mock
EntityManager entityManager;
@Mock
JpaEntityInformation<?> metadata;
JpaEntityInformation<Object, Serializable> metadata;
@Before
@@ -55,11 +56,12 @@ public class JpaRepositoryFactoryUnitTests {
factory = new JpaRepositoryFactory(entityManager) {
@Override
protected JpaEntityInformation<?> getEntityMetadata(
java.lang.Class<?> domainClass) {
@SuppressWarnings("unchecked")
public <T, ID extends Serializable> JpaEntityInformation<T, ID> getEntityInformation(
Class<T> domainClass) {
return metadata;
}
return (JpaEntityInformation<T, ID>) metadata;
};
};
}