Spring Data JPA仍然试图为自定义实现生成一个查询方法
我目前使用Kotlin 1.2和Spring Boot 2.0 M7和Spring Data JPA 2.0.2。 在这里我试图创建一个自定义实现的存储库。 我的参考是这个https://docs.spring.io/spring-data/jpa/docs/2.0.2.RELEASE/reference/html/#repositories.custom-implementations
这是回购
interface DailyBuildStatusRepository : BaseRepository, DailyBuildStatusCustomRepository { }
这是接口片段
interface DailyBuildStatusCustomRepository { fun filter(product: Int?, branch: Int?, correction: Int?, globalSearch: String, isRegEx: Boolean, columnParams: Collection, start: Int, length: Int): List }
这是实现类的骨架
@Repository class DailyBuildStatusCustomRepositoryImpl : DailyBuildStatusCustomRepository { @Autowired private val em: EntityManager? = null override fun filter(product: Int?, branch: Int?, correction: Int?, globalSearch: String, isRegEx: Boolean, columnParams: Collection, start: Int, length: Int): List { //impl here } }
但是,启动后,我看到了这一点
Caused by: java.lang.IllegalArgumentException: Failed to create query for method public abstract java.util.List com.nokia.srandu.oms.corrviewer.db.repo.custom.DailyBuildStatusCustomRepository.filter(java.lang.Integer,java.lang.Integer,java.lang.Integer,java.lang.String,boolean,java.util.Collection,int,int)! No property filter found for type DailyBuildStatus! . . . Caused by: org.springframework.data.mapping.PropertyReferenceException: No property filter found for type DailyBuildStatus!
这是以前在Spring Data 1.11.9中的Java(当然,实现类的名称根据文档不同)。 也许有人有一个想法,为什么现在在Spring 2.0.2发生?