Spring 在Kotlin中找不到QuerydslBinderCustomizer类型的属性自定义

Spring 在Kotlin中找不到QuerydslBinderCustomizer类型的属性自定义,spring,kotlin,spring-data,Spring,Kotlin,Spring Data,我有一个CRUD应用程序,用Kotlin中的Spring REST数据创建 @存储库 接口OrderRepository:PagingAndSortingRepository、QueryDSL谓词执行器、QueryDSL BinderCustomizer{ 覆盖有趣的自定义(绑定:QuerydslBindings,根:QOrder){ bindings.bind(root.address.name) .first(StringExpression::containsIgnoreCase) } }

我有一个CRUD应用程序,用Kotlin中的Spring REST数据创建

@存储库
接口OrderRepository:PagingAndSortingRepository、QueryDSL谓词执行器、QueryDSL BinderCustomizer{
覆盖有趣的自定义(绑定:QuerydslBindings,根:QOrder){
bindings.bind(root.address.name)
.first(StringExpression::containsIgnoreCase)
}
}
我已经定制了QueryDSL PredicateExecutor,根据一些示例,当我运行上述应用程序时,我从Spring得到一个初始化错误,它说:

org.springframework.data.mapping.PropertyReferenceException: No property customize found for type Order!

我认为这可能是一个Kotlin问题,可能不是Spring预期的编译方式,而是正在尝试创建一个新的数据访问函数,而不仅仅是定制QueryDSLBinder?

一个可能的解决方案

在该方法上使用Kotlin的实验性
@JvmDefault
注释将解决此问题

@JvmDefault
覆盖有趣的自定义(绑定:QuerydslBindings,根:QOrder){
bindings.bind(root.address.name)
.first(StringExpression::containsIgnoreCase)
}
需要注意的是,您需要将
-Xjvm default=enable
添加到编译器参数中