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

Spring数据JPA查询,过滤器?搜索引擎?JPQL?[副本]

卢承弼
2023-03-14
@Query("select * from father where # ???")
List<Father> searchFather(@Param("fatherBirthDate") LocalDate fatherBirthDate,
                          @Param("fatherFirstName") String fatherFirstName,
                          @Param("fatherSurName") String fatherSurName)
    null
|FATHER_NAME|FATHER_SURNAME|FATHER_BIRTH_DATE|
|JON        |SNOW          |1992-01-01       |
|JON        |ALBY          |1993-01-01       |
|JACK       |ADLEY         |1995-01-01       |
|HARRY      |COLBY         |1996-01-01       |
  • 当我提供nothing查询时,返回所有父亲
  • 当我提供父亲名“乔恩”时,我希望是乔恩·雪诺和乔恩·阿尔比
  • 当我提供姓氏“Colby”时,查询将返回HARRY Colby

我尝试了数百万次,但我不能写一个查询,当我没有提供任何参数时,它将返回所有父,当我提供一些参数时,它将减少找到的父列表。

共有1个答案

黄骏喆
2023-03-14

对于动态查询,可以使用JPA的Criteria API。

为了类型安全,您可以使用例如hibernate-jpamodelgen Maven插件来生成元模型。

Spring Data提供了规范API,它有更多的帮助器类来使用标准API。

 类似资料:
  • 我想知道是否有可能通过spring jpa存储库执行jpql查询,并能够使用分页作为排序功能,就像使用示例和规范一样。我想做一些类似的事情: QueryByQuestpleExector接口,即声明: JpaSpecificationExector接口声明:

  • 我有证据: 我想从我的数据库中获得结果,它包含每个对象中的列表technicStatusList=new arraylist<>(),我想在其中有一个TechnicStatus仅值为isactive=true。 为此,我使用了相同的JPQL查询: 但是得到一个包含TechnicStatus的结果,该结果返回一个包含true和false的TechnicStatus.isactive=true,Tec

  • 我阅读了一些关于查询上下文和过滤上下文的文章和文档,了解到如果你不需要进行全文搜索或评分,最好使用过滤上下文。就我而言,我想返回包含ID的日志……所以我意识到我应该只使用过滤上下文而不是查询上下文。除了全文搜索或评分之外,是否有一条硬基线来定义何时应该使用其中一个? 所以我从我最初的DSL查询搜索cmd: 到过滤器上下文: 因为,我想使用NEST来执行我采用这种方法的查询搜索。 这是使用NEST进

  • 问题内容: 所有人都希望使用过滤的查询,其中结果应包含来自“ query_string”和来自“ term-filter”的数据。 预期结果是: 所有带有topic_id的字母“ a”或“”的博客记录均为10。 即使其描述为空白/空,也会记录topic_id为10的其余记录。 因此,最终结果应该是-具有较高分数的匹配记录,并且应该位于顶部,然后才是与过滤器中的“ topic_id”匹配的记录。 问

  • 不带筛选器的查询: 当我用curl:curl-w'\ntime_total:%{time_total}\n'-h'content-type:application/json'-xget-d‘{}':9200/store/msg/_search?routing=user1来度量这两个查询的性能时 不带筛选器的查询得到的总时间:1.134、1.237、1.107,带筛选器的查询时间:1.322、1.4

  • 我有两个实体AAA和BBB,如下所示 以及BBB实体作为 现在使用spring数据JPA本机查询,我需要一个如下的查询(使用JPARepository) 当执行时,它会给出以下异常 这里的bbb详细信息是键(BBBType)值(子实体)对的映射。如何根据数据jpa本机查询中的BBBType值查询映射的子实体?