diff --git a/src/main/kotlin/org/springframework/data/repository/CrudRepositoryExtensions.kt b/src/main/kotlin/org/springframework/data/repository/CrudRepositoryExtensions.kt new file mode 100644 index 000000000..7c3bfb2a8 --- /dev/null +++ b/src/main/kotlin/org/springframework/data/repository/CrudRepositoryExtensions.kt @@ -0,0 +1,10 @@ +package org.springframework.data.repository + +/** + * Retrieves an entity by its id. + * + * @param id the entity id. + * @return the entity with the given id or `null` if none found + * @author Sebastien Deleuze + */ +fun CrudRepository.findByIdOrNull(id: ID): T? = findById(id).orElse(null) diff --git a/src/test/kotlin/org/springframework/data/repository/CrudRepositoryExtensionsTests.kt b/src/test/kotlin/org/springframework/data/repository/CrudRepositoryExtensionsTests.kt new file mode 100644 index 000000000..6f4d262e1 --- /dev/null +++ b/src/test/kotlin/org/springframework/data/repository/CrudRepositoryExtensionsTests.kt @@ -0,0 +1,25 @@ +package org.springframework.data.repository + +import com.nhaarman.mockito_kotlin.verify +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Answers +import org.mockito.Mock +import org.mockito.junit.MockitoJUnitRunner +import org.springframework.data.repository.sample.User + +/** + * @author Sebastien Deleuze + */ +@RunWith(MockitoJUnitRunner::class) +class CrudRepositoryExtensionsTests { + + @Mock(answer = Answers.RETURNS_MOCKS) + lateinit var repository: CrudRepository + + @Test + fun `CrudRepository#findByIdOrNull() extension should call its Java counterpart`() { + repository.findByIdOrNull("foo") + verify(repository).findById("foo") + } +}