通过表达式的结果对QueryDSL进行过滤

在我们的应用程序中,我们使用查询dsl来获取实体。我目前正在尝试创建一种通用方法来通过布尔表达式进行过滤。给定布尔表达式,我该如何过滤该表达式?

什么不起作用:


    @Override
    public Predicate getWhereclause(FilterKey filterKey) {
        return getBooleanExpression().eq(Boolean.parseBoolean(filterKey.getFilterValue()));
    }

    private BooleanExpression getBooleanExpression() {
        return (BooleanExpression)getFieldPath();
    }

例如,布尔表达式如下:QObject.someDate.gt(today)但是,在代码中我们当然不知道确切的表达式...将.eq()附加到“未知”表达式会使其抛出此错误:

 org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected AST node: > near line 3,column 37 [select count(object)
from com.example.ejb.api.entities.Object object
where object.someDate > ?1 = ?2]

如果不知道确切的表达方式,有没有办法做到这一点?

kkkkkwwwpopo 回答:通过表达式的结果对QueryDSL进行过滤

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2995050.html

大家都在问