Связывание QueryDSL для нескольких столбцов
Я хотел бы создать пользовательскую привязку (QuerydslBinderCustomizer
), который отображается в предложение WHERE, которое фильтрует по 2 столбцам. В качестве примера /otherobject.people?type=oldman
должен сопоставить что-то вроде WHERE sex=male AND age > 80
, Итак, у меня есть 2 вопроса:
1) как это создать QPeople.type
путь (это не столбец в Entity
)?
2) как сопоставить значение с пользовательским выражением?
bindings.bind(QOtherobject.people.any()).first((QPeople path, People value) -> {
BooleanBuilder predicate = new BooleanBuilder();
if ("oldman".equals(value)) { // value.getType?
return predicate.and(path.sex.eq("male"))
.and(path.age.gt(80));
}
})
Проблема с вышеупомянутым состоит в том, что значение не является строкой 'oldman', а имеет тип People. В то время как значение параметра url является строкой.