Я перевожу свое приложение на последние версии Spring Data и изо всех сил стараюсь сделать это правильно.
Представьте, что у меня есть хранилище с одним методом, чтобы дополнительно запрашивать мои объекты по имени:
@Repository
interface FooRepository : JpaRepository<Foo, Long> {
fun findByName(name: String): Foo
}
Согласно документам, в такой ситуации - если сущность не найдена - будет выброшено EmptyResultDataAccessException
.
Однако я также хочу иметь возможность запрашивать сущности по id. Если я использую findById
, результат будет Optional<Foo>
. Другой вариант - использовать getOne
, что, с другой стороны, приведет к EntityNotFoundException
, если не найден.
Итак, есть ли другой способ, кроме как перевести все на Optional
, чтобы получить единый API в Kotlin?