Added sample for invocation of JDK 8 default method on a repository.

This commit is contained in:
Oliver Gierke
2014-07-07 16:08:05 +02:00
parent 0a98efaf20
commit d748923519
3 changed files with 20 additions and 0 deletions

View File

@@ -10,6 +10,10 @@
<artifactId>spring-data-jpa-java8</artifactId>
<name>Spring Data JPA - Java 8 specific features</name>
<properties>
<spring-data-releasetrain.version>Evans-BUILD-SNAPSHOT</spring-data-releasetrain.version>
</properties>
<dependencies>

View File

@@ -36,4 +36,10 @@ public interface CustomerRepository extends Repository<Customer, Long> {
Optional<Customer> findOne(Long id);
<S extends Customer> S save(S customer);
Optional<Customer> findByLastname(String lastname);
default Optional<Customer> findByLastname(Customer customer) {
return findByLastname(customer.lastname);
}
}

View File

@@ -56,4 +56,14 @@ public class Java8IntegrationTests {
assertThat(customer.createdDate, is(notNullValue()));
assertThat(customer.modifiedDate, is(notNullValue()));
}
@Test
public void invokesDefaultMethod() {
Customer customer = repository.save(new Customer("Dave", "Matthews"));
Optional<Customer> result = repository.findByLastname(customer);
assertThat(result.isPresent(), is(true));
assertThat(result.get(), is(customer));
}
}