Kotlin и Spring Data JPA создает PropertyReferenceException

В настоящее время я использую Kotlin 1.2 и Spring Boot 2.0 M7 с Spring Data JPA. В этом проекте я использую настраиваемый базовый репозиторий вместо JPARepository или PagingAndSortingRepository (на самом деле это не имеет значения)

Вот базовый интерфейс

@NoRepositoryBean interface BaseRepository<T, ID : Serializable> : Repository<T, ID> { fun <S : T> save(entity: S): S fun findOne(id: ID): T? fun findAll(): List<T> fun count(): Long } 

и вот фактический репозиторий

 interface ArticleRepository : BaseRepository<Article, Int> { } 

и, наконец, здесь приведен класс данных статьи

 @Entity @Table(name = "article") @Cacheable data class Article ( @Id @GeneratedValue(strategy = IDENTITY) @Column(name = "id", unique = true, nullable = false) var id: Int? = null, @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id", nullable = false) var member: Member? = null, @Column(name = "title", nullable = false, length = 200) var title: String = "", @Column(name = "content", nullable = false, length = 65535) var content: String = "", @Column(name = "last_modified", nullable = false, length = 19) var lastModified: LocalDateTime = LocalDateTime.now(), @Column(name = "deleted", nullable = false) var deleted: Boolean = false, @Column(name = "effective_start", length = 19) var effectiveStart: LocalDateTime? = null, @Column(name = "effective_end", length = 19) var effectiveEnd: LocalDateTime? = null, @Version @Column(name = "version", nullable = false) var version: Int = 0 ): Serializable { constructor() : this(null) constructor(member: Member, title: String, content: String, lastModified: LocalDateTime, deleted: Boolean) : this(null, member, title, content, lastModified, deleted) } 

Но при запуске я получаю эту странную ошибку

 Caused by: java.lang.IllegalArgumentException: Failed to create query for method public abstract java.lang.Object com.nokia.srandu.oms.corrviewer.db.repo.BaseRepository.findOne(java.io.Serializable)! No property findOne found for type Article! . . . Caused by: org.springframework.data.mapping.PropertyReferenceException: No property findOne found for type Article! 

Я думаю, что это связано с https://jira.spring.io/browse/DATACMNS-1223, но что я могу сделать для этого? Передача интерфейса на Java тоже не помогла.

Условные обозначения имен методов для репозиториев изменились в Spring Data 2.0:

fun findOne(…): T? -> fun findById(…): Optional<T>

Если вы хотите продолжить использовать простой тип с нулевым значением вместо Optional , объявите дополнительный или альтернативный метод запроса fun getById(…): T? и он должен работать должным образом.