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

带有可选参数的Springboot动态查询

申屠瀚海
2023-03-14

在下面的代码中,我有时会将modifeddate设置为null。此时,它抛出错误为“could not extract resultset;SQL[n/a];嵌套异常为org.hibernate.exception.sqlgrammarexception:could not extract resultset”

即使modifieddate为空,我如何获取数据。总有一天约会就要来了。这是怎么做的?

    null
@Repository
public interface AdminRepository extends JpaRepository<AdminEntity, Long> {

@Query(
     value="SELECT * from admin_entity where status=:adminStatus and modified_tsz>=:modifedDate:", 
    nativeQuery=true)
  List<AdminEntity> getAdmins(String adminStatus, Date modifedDate)
}


共有1个答案

尉迟默
2023-03-14

试试这个

@Repository
public interface AdminRepository extends JpaRepository<AdminEntity, Long> {

@Query(
     value="SELECT * from admin_entity where status=:adminStatus
           AND  (modified_tsz>=:modifedDate OR :modifedDate is null)", 
    nativeQuery=true)
  List<AdminEntity> getAdmins(String adminStatus, Date modifedDate)
}
 类似资料:
  • 问题内容: 我正在开发一个需要搜索功能的应用程序,我想编写根据参数动态创建的HQL查询。目前我有4个参数,而根据用户想要的搜索方式,所有参数都是必需的,或者1或2或3个参数是必需的。 这是我对所有4个参数的常规查询,现在我必须编写一个搜索查询,在其中使用多个可选参数,如何使用可选参数进行此查询?请将我的查询转换为动态可选参数查询?谢谢 问题答案: 我这样自己转换查询

  • 问题内容: 使用Hibernate时,有什么方法可以在命名查询中指定可选参数(例如,从表单提供搜索参数而并非所有参数都是必需的)?我正在使用本机SQL查询,但该问题可能也适用于命名HQL查询。 我很确定对此的答案是“否”,但是我还没有在文档中找到确切的答案。 问题答案: AFAIK,没有这样的事情,因此您必须为此编写一个动态查询。也许看一下以前的答案,该答案显示了如何在HQL中执行此操作(您可以将

  • 但是,如果Terminal中没有提供,我不知道如何(或者是否能够)为其设置默认值。像这样简单的东西不起作用。这里的一个解决方案是根据的内容或大小在函数中设置变量。但我不知道有没有更好的办法做到这一点。 因此,我正在寻找一种方法来使用来自终端的参数调用一个函数,其中需要一个数字(在本例中为2),而其余的是可选的,并设置为默认值。

  • 我直接在web界面中生成了一个新的动态链接。这基本上将用于每个人,或者这是我的希望。让我们将该链接称为link.some-app.com/email-link。然后,我将其设置为指向https://some-app-123f.firebaseapp.com/__/auth/action。去第一个带我去第二个,到目前为止一切都很好。这些链接只是打开网页,而不是应用程序,也没有中间页面。 我可以用li

  • 问题内容: 我正在向数据库中插入大约500 000个对象,其中许多对象是相同的(数据库中具有相同的主键表示),但是其他字段可能不同,因此我使用的方法是“更新-如果没有受影响的行-插入”。问题在于,有时对象的某些字段设置为null(无法从文件读取),并且已经在数据库中设置了某些值,因此我将其更新为null =删除它。)如何实现方案,即只更新字段不为空? 这是我现在如何做的一个简单示例: 问题答案:

  • 我有一个简单的查询如下“select * from USERS”。我还使用Pageable来启用分页。 此查询可能具有基于给定参数是否为 null 的可选谓词。 例如,如果给定了“code”参数且该参数不为空,则查询变为“select * from USERS where code =:code”; 据我所知,我不能使用@Query注释来实现这一点。我可以实现一个定制的存储库,并使用EntityM