J'ajoute quelques liaisons dans la méthode de personnalisation, en référence à l'accrochage de code ci-dessous. Maintenant, il ya un problème étrange, lors du redémarrage du programme, la méthode de personnalisation est parfois chargée, donc la méthode peut être appelée avec succès, mais parfois ne peut pas être chargé, ce qui conduit à des résultats de requête erronés. J'ai débogué la ressource injectant AdminRepository. Lors du déchargement de personnaliser la méthode, la classe de printemps JdkDynamicTarget n'a pas le cache de la méthode:querydsl par défaut customiser la méthode ne peut pas charger
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));
}
} BTW, j'utilise com.querydsl: querydsl-MongoDB: jar: 4.1.4, org.springframework.boot: printemps-démarrage -devtools: jar: 1.4.1.RELEASE, org.springframework: support de contexte de printemps: jar: 4.3.3.RELEASE.