当前位置: 首页 > 知识库问答 >
问题:

返回计算结果为true的QueryDSL BooleanExpression

文志学
2023-03-14

假设我有CustomerQueryInfobean,具有以下属性:

  • 字符串名
  • 字符串lastName
  • Statusenum Status
private BooleanExpression isFirstNameLike(String firstName){
    if(firstName==null)
        return true BooleanExpression somehow;
    return QCustomer.customer.firstName.like(firstName);
}

private BooleanExpression isStatutEq(StatusEnum status){
    if(status==null)
        return true BooleanExpression somehow;
    return QCustomer.customer.status.eq(status);
}
return query.from(customer).where(isFirstNameLike(customerQueryInfo.getFirstName).and(isLastNameLike(customerQueryInfo.getLastName).and(isStatusEq(customerQueryInfo.getStatus))).list;
  1. 如何返回计算结果为true的BooleanExpression
  2. 如果上述方法不可取,那么推荐的最佳实践是什么?

共有1个答案

满自明
2023-03-14

如何返回计算结果为true的BooleanExpression?

BooleanExpression alwaysTrue = Expressions.asBoolean(true).isTrue();
 类似资料:
  • 我写了一个简单的检查方法来检查MySQL数据库中是否存在给定字符串ID的数据: 查询: 我可以用MySQL workbench确认表中没有我请求的id的数据(实际上根本没有数据),但条件的计算结果为true。以下是ResultSet的调试输出: 起初,“InvalidRowReason”使我相信它正在评估为真,因为索引实际上在第一个索引之前,但是 isBeforeFirst()的文档状态如下: 如

  • 我正在尝试编写一个SeleniumWebDriver测试,它可以导航到Google,搜索一些东西,然后验证Google是否搜索了输入的内容。然而,下面的代码给出了一个“false”输出,当我看到它是真的时。 我在这个场景中找到的所有代码似乎都是Google Instant之前的代码,我无法在FirefoxDriver中关闭Instant。它还应该等待网页,图像,视频等酒吧被点击之前,检查任何东西;

  • 这个问题基本上是说迭代一个整数,然后计算这个数是否可以被它的左边数整除,如果它可以整除,则返回一个布尔数组。 73312 第一个数字没有左边的数字,所以它是假的 我运行了测试,一切都很好,但是有了这个数字(73312),当它应该返回false时,它会返回true。 预期输出 实际输出

  • 问题内容: 我正在尝试创建一种方法,从中可以查询数据库并检索整个表。 目前,如果我使用这些数据只是正常工作 中 的方法。但是,我希望该方法返回结果。 我正在了解当前代码。 我该如何实现? 问题答案: 您永远不要通过公共方法来回避。这很容易导致资源泄漏,因为您不得不保持语句和连接打开。关闭它们将隐式关闭结果集。但是,将它们保持打开状态将导致它们悬而未决,并且当它们打开过多时,将导致数据库用尽资源。

  • 而且 不是应该都返回吗?它不是基元变量,在第二个代码中,即使在添加零之后,它也会打印。我知道装箱(对于从-128到127的整数),但是为什么装箱在第二段代码中起作用而不是在第一段代码中起作用呢?

  • 问题内容: 如果我这样做: 那又回来了。仅仅是因为在列表中。 但是,如果我这样做: 那又回来了。而等于: 为什么? 问题答案: 运算符优先级 2.x,3.x。的优先级低于的优先级。因此,它等效于: 这就是你想要的: 正如@Ben指出的那样:建议从不写作,更喜欢。前者使它看起来像一个函数调用,而它却是一个运算符,而不是一个函数。