Spring boot 我们可以在Spring JPA@Query中替换等于、大于或小于运算符吗?

Spring boot 我们可以在Spring JPA@Query中替换等于、大于或小于运算符吗?,spring-boot,jpa,spring-data-jpa,Spring Boot,Jpa,Spring Data Jpa,我是Spring、Springboot、JPA的新手,并且被其中一个需求卡住了。 以下是查询: @Query("Select re from RequiredAccountEntity re where re.debitAccNo= :debitAccNo " + "AND re.date<= :toDate AND re.date>= :fromDate AND re.tnxAmt tnxAmtFlag :tnxAmt ") List<RequiredAc

我是Spring、Springboot、JPA的新手,并且被其中一个需求卡住了。 以下是查询:

@Query("Select re from RequiredAccountEntity re where re.debitAccNo= :debitAccNo "
          + "AND re.date<= :toDate AND re.date>= :fromDate AND re.tnxAmt tnxAmtFlag :tnxAmt ") List<RequiredAccountEntity>
          fetchAllData(@Param("debitAccNo") String debitAccNo, @Param("fromDate")
          Date fromDate, @Param("toDate") Date toDate, @Param("tnxAmt") Double tnxAmt,@Param("tnxAmtFlag") String tnxAmtFlag);
@Query(“从RequiredAccountEntity re中选择re,其中re.debitAccNo=:debitAccNo”
+“和re.date=:fromDate和re.tnxAmt tnxAmtFlag:tnxAmt”)列表
fetchAllData(@Param(“debitAccNo”)字符串debitAccNo,@Param(“fromDate”)
Date fromDate、@Param(“toDate”)Date toDate、@Param(“tnxAmt”)Double tnxAmt、@Param(“tnxAmtFlag”)字符串tnxAmtFlag);
在本文中,我试图根据来自其他应用程序的请求数据动态替换“大于”、“小于”或“等于”操作符

请帮助我或指导我以正确的方式在Springboot JPA中这样做

提前谢谢

谢谢和问候
Shanu

您只需使用

列出FindBydebitAccnoeQualsandDateLessThaneQuandCreateTaneQualandTnXamtEquals(字符串debitAccNo、日期fromDate、日期toDate、字符串tnxAmtFlag);

您可以尝试以下方法:

。。。
其中(:tnxAmtFlag=''和re.tnxAmt>:tnxAmt)
或(:tnxAmtFlag='='和re.tnxAmt=:tnxAmt)
...
如果在未指定运算符时需要获得所有结果,请使用:

。。。
其中:tnxAmtFlag为空
或(:tnxAmtFlag=''和re.tnxAmt>:tnxAmt)
或(:tnxAmtFlag='='和re.tnxAmt=:tnxAmt)
...

Hahaha,这个方法名称很棒:DDo我们需要覆盖存储库类中的findByCreateThan()方法吗?@Shanu不,你没有。只需添加
方法符号
,因为存储库是一个接口:非常感谢,这个解决方案对我有效。我将进行更多测试并很快更新。。
List<RequiredAccountEntity> findByDebitAccNoEqualsAndDateLessThanEqualAndGreaterThanEqualAndTnxAmtEquals(String debitAccNo, Date fromDate, Date toDate, String tnxAmtFlag);