Spring 引导 REST 应用程序;使用外键的 findBy 方法
Spring Boot REST application; findBy method using foreign key
使用 Spring Data REST,我有两个模型,NvdApps 与 NvdVulnerabilities
具有一对多关系
我正在尝试添加通过 NvdApp 搜索 NvdVulnerabilities 的功能,因此我的存储库如下所示:
public interface NvdVulnerabilityRepository extends PagingAndSortingRepository<NvdVulnerability, Long> {
List<NvdVulnerability> findByNvdApp(NvdApp nvdApp);
}
这给了我 REST 终点:
"findByNvdApp" : {
"href" : "http://localhost:8080/api/nvdVulnerabilities/search/findByNvdApp{?nvdApp}",
"templated" : true
}
当我尝试使用这个端点时,它只是 returns 整个 table,不管我在查询字符串中输入了什么。我试过的 URL 示例:
http://localhost:8080/api/nvdVulnerabilities/search/findByNvdApp?nvd_app_id=25
http://localhost:8080/api/nvdVulnerabilities/search/findByNvdApp?25
http://localhost:8080/api/nvdVulnerabilities/search/findByNvdApp?NvdApp=25
我是不是遗漏了一些配置?我基本上是在尝试复制查询:
SELECT * FROM NVD_VULNERABILITY where nvd_app_id = 25
在 H2 数据库控制台中按预期工作。搜索终点究竟是如何工作的,我如何让它按预期进行过滤?
我还想让分页与搜索端点一起工作;现在 returns 整个 7k+ 行,而终点 http://localhost:8080/api/nvdVulnerabilities/
returns 每页 20 项
你可以试试:
List<NvdVulnerability> findByNvdApp_Id(Integer id);
如果 Integer id
变量存在于您的 NvdApp
class.
更改存储库查询以匹配以下内容:
public interface NvdVulnerabilityRepository extends PagingAndSortingRepository<NvdVulnerability, Long> {
Page<NvdVulnerability> findByNvdApp_Id(Long id, Pageable pageable);
}
允许按 id 搜索以及使 return 分页
使用 Spring Data REST,我有两个模型,NvdApps 与 NvdVulnerabilities
具有一对多关系我正在尝试添加通过 NvdApp 搜索 NvdVulnerabilities 的功能,因此我的存储库如下所示:
public interface NvdVulnerabilityRepository extends PagingAndSortingRepository<NvdVulnerability, Long> {
List<NvdVulnerability> findByNvdApp(NvdApp nvdApp);
}
这给了我 REST 终点:
"findByNvdApp" : {
"href" : "http://localhost:8080/api/nvdVulnerabilities/search/findByNvdApp{?nvdApp}",
"templated" : true
}
当我尝试使用这个端点时,它只是 returns 整个 table,不管我在查询字符串中输入了什么。我试过的 URL 示例:
http://localhost:8080/api/nvdVulnerabilities/search/findByNvdApp?nvd_app_id=25
http://localhost:8080/api/nvdVulnerabilities/search/findByNvdApp?25
http://localhost:8080/api/nvdVulnerabilities/search/findByNvdApp?NvdApp=25
我是不是遗漏了一些配置?我基本上是在尝试复制查询:
SELECT * FROM NVD_VULNERABILITY where nvd_app_id = 25
在 H2 数据库控制台中按预期工作。搜索终点究竟是如何工作的,我如何让它按预期进行过滤?
我还想让分页与搜索端点一起工作;现在 returns 整个 7k+ 行,而终点 http://localhost:8080/api/nvdVulnerabilities/
returns 每页 20 项
你可以试试:
List<NvdVulnerability> findByNvdApp_Id(Integer id);
如果 Integer id
变量存在于您的 NvdApp
class.
更改存储库查询以匹配以下内容:
public interface NvdVulnerabilityRepository extends PagingAndSortingRepository<NvdVulnerability, Long> {
Page<NvdVulnerability> findByNvdApp_Id(Long id, Pageable pageable);
}
允许按 id 搜索以及使 return 分页