我必须开发一个端点,就像提出的问题一样
/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 Specification进行可选过滤。创建一个自定义规范类,该类根据给定的筛选器值添加联接和谓词。
Spring Data存储库然后接受该Specification作为参数,并使用实体图来获取您提到的所有关联,或者使用DTO投影来仅获取相关数据。