Spring Data JPA + Kotlin +自定义实现

时间:2018-09-04 09:56:40

标签: spring kotlin spring-data-jpa

我在Java中有一个像这样的简单存储库:

@Repository
public interface DogRepository extends JpaRepository<Dog, Long> {
  Optional<Dog> findByName(String name);
}

转换为kotlin:

@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";
  }
}

在Kotlin中不起作用

@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

0 个答案:

没有答案