spring-boot - 根据jpa中的两个外国ID获取行
问题描述
我正在使用 PostgreSQL 作为数据库,我想获取其两列与另一个表的外键匹配的所有行。
我已将表中的关系映射为:
@JsonIgnore
@ManyToOne
@JoinColumn(name = "projects_id", referencedColumnName="id")
private Projects projects;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "reports_id", referencedColumnName="id")
private Reports reports;
这是我在界面中定义的 CRUD 方法:
List<ProjectReportTask> findByProjectsIdAndReportsId(Long id, Long id2);
但是当我调用这个方法时,列表是空的,而不是在数据库中,我有两个 id 都存在的记录
解决方案
我确实看到方法命名有任何问题。但是,当我的实体使用@NaturalId
. 所以我建议你手动编写查询。
@Query(value="SELECT prt FROM
ProjectReportTask prt
WHERE prt.projects.id = ?1 AND prt.reports.id = ?2 ")
List<ProjectReportTask> getProjectReportTask(Long id, Long id2);
推荐阅读
- python - 在多个空格但不是单个空格上拆分字符串
- java - 如果条件为真,我如何每秒自动运行一个按钮,直到 de 条件成立?
- github - 在 /blog 目录中安装 Gatsby
- python - 我的 base 10 或一般代码有什么问题
- java - 如何在 TextView 中压倒自动调整大小?
- javascript - Redux 商店在刷新浏览器时不刷新(清除)
- amazon-web-services - S3 存储桶策略不允许 Athena 执行查询
- php - 根据在 WooCommerce 中选择的运输方式添加费用
- python - 从整数列表中返回元素的索引值
- php - PHP shell_exec 在第二次 Ajax 调用时停止工作