Я использую эту потрясающую библиотеку, но у меня есть проблема.
Я реализую шаблон DTO, поэтому я использую другой проект для автоматического преобразования EJB в DTO с использованием соглашений об именах.
Затем я хочу запросить DTO и получить реальный результат (EJB-запрос).
Я выполнил QueryDSL с JPAAnnotationProcessor на моих ENTITIES и QuerydslAnnotationProcessor на моих DTO.
Например:
Преобразование объектов хорошо, "siteName" автоматически соответствует "site.name".
Итак, я поставил QueryDSL Query как: userDto.id.gt(20).and(userDto.username.like("a%")).and(userDto.siteName.like("%b"));
Я ищу способ создания соответствующего запроса объекта
Единственная идея, которую я получил, это:
Любой способ сделать это или достичь моей цели?
благодаря
Вам нужно будет преобразовать выражения в целом. С помощью специального ReplaceVisitor вы можете, например, переопределить визит (Path expr, @Nullable Void context)
Общий способ замены пути - использовать карту карты для определения замен:
if (map.contains(path)) {
return map.get(path);
} else {
return super.visit(path, context);
}
Вы можете использовать своего посетителя так:
Expression transformedExpression = expr.accept(visitor, null);