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

Blaze持久性跳过where表达式中的空参数

钮实
2023-03-14

是否有一种方法可以跳过where表达式中的空参数?让我们假设我有以下代码:

Boolean deleted = null;
var criteriaBuilder = cbf.create(em, MyClass.class)
                 .where("deleted").eq(deleted);

当deleted变量为null时,我希望跳过“deleted”的计算。有没有办法做到这一点?

共有1个答案

裴理
2023-03-14

这通常是通过有条件地添加谓词来完成的,如下所示:

var criteriaBuilder = cbf.create(em, MyClass.class);
if (deleted != null) {
    criteriaBuilder.where("deleted").eq(deleted);
}
 类似资料:
  • 我有一个Spring应用程序,它使用写入MongoDB。问题是我想从持久性中跳过空列表实体属性,以节省文档周围的空间。我该怎么做?

  • 我希望即使服务器重新启动,也能保持一个具有固定id的模式。 是否可以在模式注册表中保存模式,以便在服务器崩溃后使用相同的id? 否则,是否有可能在模式注册表服务器启动时用固定的id硬编码一个模式?

  • 我正在尝试文档'1.5中的示例代码。第一个条件查询“节。代码如下, 并且添加代码,ClassCastException发生。 我创建了github公共存储库,所以您可以在这里查看代码。 我用Spring Boot创建了这个项目。 如有任何帮助,不胜感激。谢谢你。

  • 我试图通过使用blaze bit persistence对子查询进行联接,我有一个标准构建器,如下所示, 当我执行它时,我得到如下所示的sql查询 问题发生在on子句中,当我试图比较on cluase中的两个表account_id时,我得到了列丢失错误,因为在子查询中默认为account_id形成了别名。请让我知道如何解决它。我使用的是Hibernate5.4JPA供应商。 问题:db::异常:在

  • JPA 3.0于2020年11月发布,我想大多数JPA提供商(Hibernate、EclipseLink、OpenJPA)仍然支持JPA 2.2。是否有迁移到新版本的计划?这将不是那么简单,因为,例如,顶级包已经更改(javax.persistence-