我在自定义方法中添加了一些绑定,参考下面的代码捕捉。现在有一个奇怪的问题,重新启动程序时,自定义方法有时会被加载,所以可以成功调用该方法,但有时无法加载,这会导致错误的查询结果。我调试了注入AdminRepository的资源。当卸载定制方法,春天的JdkDynamicTarget类没有方法缓存:querydsl默认自定义方法无法加载
public interface AdminRepository extends CrudRepository<MonthGprs, String>,
QueryDslPredicateExecutor<MonthGprs>, QuerydslBinderCustomizer<QMonthGprs> {
Logger log = LoggerFactory.getLogger (AdminRepository.class);
@Override
default public void customize(QuerydslBindings bindings, QMonthGprs root) {
log.debug ("AdminRepository");
bindings.bind (root.appLeftGprs).all (((path, value) -> {
Iterator it = value.iterator ();
return path.goe ((Float) it.next ()).and (path.loe ((Float) it.next ()));
}));
bindings.bind (root.wifiLeftGprs).all (((path, value) -> {
Iterator it = value.iterator ();
return path.between ((Float) it.next (), (Float) it.next ());
}));
bindings.bind (root.simInfo.createdDate).all (((path, value) -> {
Iterator it = value.iterator ();
return path.after ((ZonedDateTime) it.next ()).and (path.before ((ZonedDateTime) it
.next ()));
}));
bindings.bind (String.class)
.first ((StringPath path, String value) -> path.containsIgnoreCase (value));
}
} 顺便说一句,我用com.querydsl:querydsl-的MongoDB中:jar:4.1.4,org.springframework.boot:春季启动-devtools:jar:1.4.1.RELEASE, org.springframework:spring-context-support:jar:4.3.3.RELEASE。