java - @Query 不运行空条件

标签 java jakarta-ee spring-data-jpa jpql

这很简单,但我不知道如何解决它。 我想在查询参数“empresaId”为 NULL 时选择所有记录,而不是像现在没有选择任何记录。也就是说当“empresaId”为null时就好像存在这样的条件。

   @Query("select paquete from Paquete paquete where paquete.empresa.id =:empresaId")
   Page<Paquete> advancedSearch(@Param("empresaId") Long empresaId, Pageable pageable);

有人可以帮助我吗? 非常感谢。

最佳答案

在这种情况下,简单的方法是添加一个 or 条件检查参数是否为 null,因此在这种情况下它将返回 true 并且将获取所有行。

@Query("select paquete from Paquete paquete where paquete.empresa.id =:empresaId or :empresaId is null")

如果有更多动态条件,您可以查看 Query By Example它允许动态查询创建。

关于java - @Query 不运行空条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40023935/

相关文章:

java - Spring JPA Crud 存储库保存不返回 UUID 字段

java - 查询之间的 Spring 数据日期

java - 如何根据日期对对象 map 进行排序

java - 将 Maven Artifact 映射到 Debian 包

java - 如何使用 <s :checkboxlist/> tag? 从 List<MyObject> 生成复选框

java - 如何在ThreadPoolTask​​Executor中持久化对象

java - 为每个新线程执行代码?

java - 为 SWT Shell 设置默认字体

java - 我们可以在 Servlet 中从 destroy() 方法调用 service() 方法吗?

java - hibernate spring jpa中的双向一对一