gpt4 book ai didi

java - 如何使用 Spring JPA 存储库按多个字段过滤实体?

转载 作者:行者123 更新时间:2023-12-03 15:48:03 25 4
gpt4 key购买 nike

我正在编写用于租用平面网络应用程序的后端,但我不知道如何从数据库中过滤公寓(例如可用房间、床位、楼层或城市)。所以我有 10 个字段,所以用户可以在一次搜索中选择所有字段来过滤平面,我只是想以一种方法将所有字段放入 JPA 存储库,但是当我只使用其中的 5 个时,它开始卡住,我无法添加更多字段。当我开始输入例如 NumberOfRooms 时,它只是卡住,然后输入每个字母也卡住。
1.搜索(过滤)字段有限制吗?
2.还有什么方法可以做到这一点?(我想把所有东西都放在一个方法中,并在 Controller 中检查用户是否使用了所有过滤器,检查每个字段是否为空)

List<Flat> findAllByPriceBetweenAndCityAndRentORbuyAndUtilitiesBetweenAndNumberOfBedsBetweenAndNum(FastMoney less,FastMoney greater,String city,Boolean rentORbuy,int util1,int util2,int num1,int num2);

最佳答案

88个字符的查询方法?请不要!
当您可以使用 Text Blocks 编写格式良好的多行 JPQL 查询时,为什么还要编写一个无法解析的 88 个字符的方法?为了加分?
Spring Data Repositories 的自定义实现来拯救你!
如果要动态构建查询,请使用 Criteria API。您甚至可以从类型安全 Metamodel 中受益.
所以,这是你需要做的:

  • 转至 Custom Implementations for Spring Data Repositories Spring Data 手册中的部分,并了解如何创建自定义存储库,您将在其中添加 findFlats方法。
  • 内新findFlats方法使用 Criteria API 动态构建查询。

  • 就是这样!

    关于java - 如何使用 Spring JPA 存储库按多个字段过滤实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63919278/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com