【发布时间】:2017-07-26 02:34:40
【问题描述】:
我在自定义方法中添加了一些绑定,参考下面的代码快照。现在有一个奇怪的问题,重启程序时,有时会加载customize方法,所以可以成功调用该方法,但有时却加载不出来,导致查询结果错误。我调试了资源注入 AdminRepository。卸载自定义方法时,spring的JdkDynamicTarget类没有缓存方法:
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:spring-boot-devtools:jar:1.4.1.RELEASE, org.springframework:spring-context-support:jar:4.3.3.RELEASE.
【问题讨论】: