mysql - 基于可选查询参数返回列表
问题描述
我必须像下面的问题一样开发一个端点
/GET Filter_Questions - Returns list of questions based on the combination of following
query parameters
a. Input
i. Companies - List of companies - Optional
ii. Subtopics - List of subtopics - Optional
iii. Likes - Questions with more votes than votes sent as input - Optional
iv. Date - Questions asked after a given date - Optional
v. Tags - List of tags - - Optional
b. Output
i. Question ID
ii. Question Text
iii. Companies - List of companies for which the question was asked
iv. Likes - Number of likes of the question
v. Answer - Answer with most likes for the given question
vi. Tags - Tags associated with the given question
我应该如何处理这个问题,我可以做到这一点的方法是获取列表中的所有问题,然后为所有查询参数制作单独的列表,
如果用户提供 3 个参数,则将创建 3 个列表,然后我将从列表中获取重复项并返回创建的列表
但我觉得必须有一种更清洁的方法来解决这个问题?
解决方案
您可以使用例如 Spring Data Specifications 进行可选过滤。创建一个自定义规范类,根据给定的过滤器值添加连接和谓词。
然后,Spring 数据存储库接受该规范作为参数,并使用一个实体图来获取您提到的所有关联,或者使用 DTO 投影来仅获取相关数据。
推荐阅读
- ios - 适用于所有 iPhone 设备的图像调整器
- javascript - JavaScript为数组中不存在的键添加零
- python - 我在使用 Telepot 运行 Telegram Bot 时遇到问题
- python - python lockf:LOCK_EX 有效,但 LOCK_SH 无效
- redux - combineReducers 破坏了简单的单元测试?初始状态行为已更改
- c - 如何将相同长度的两个数组中的公共值复制到另一个没有重复的数组中?
- oracle11g - 有没有办法将列名作为日期的csv导入oracle?
- java - 嵌入式的休眠延迟加载字段
- c - 在 A 行和 B 行输出?
- spring - Resilience 4j 断路器的单独属性文件