У меня есть простой репозиторий в Java:
@Repository
public interface DogRepository extends JpaRepository<Dog, Long> {
Optional<Dog> findByName(String name);
}
Пересчитано в котлин:
@Repository
interface DogRepository : JpaRepository<Dog, Long> {
fun findByName(name:String) : Optional<Dog>
}
Пока здесь все работает как положено. Теперь я хочу добавить пользовательскую реализацию.
В Java это работает :
@Repository
public interface DogRepository extends JpaRepository<Dog, Long> {
Optional<Dog> findByName(String name);
default String foo(){
return "Foo";
}
}
В Котлине это не работает :
@Repository
interface DogRepository : JpaRepository<Dog, Long> {
fun findByName(name:String) : Optional<Dog>
fun foo() = "Foo"
}
Исключение:
org.springframework.data.mapping.PropertyReferenceException: No property foo found for type Dog!
В чем причина? Я что-то не так делаю или это ошибка?
Версии:
- Spring Boot 2.0.2.RELEASE
- Spring Core: 5.0.6.RELEASE
- Spring Data JPA: 2.0.7.RELEASE