【问题标题】:Spring JPA Method name for a 2 table query using @Query使用 @Query 的 2 表查询的 Spring JPA 方法名称
【发布时间】:2018-11-16 16:03:56
【问题描述】:

已编辑

很好奇...我有一个自定义的 Spring JPA 查询,我不确定如何编写。

我正在扩展 PagingAndSortingRepository

@Query: select * from Table1 tb1 JOIN Table2 tb2 on tb1.id = tb2.tb1_id 其中 tb2.personId = :personId and tb1.mainId=:mainId and tb2.status in (:statusList)

我不确定如何为此创建方法名称,因为它一直给我一个错误,说它在 Table1 中找不到状态。

我想到了类似的东西: 公共页面 findByMainIdAndStatusInAndPersonId(@Param("mainId") Integer mainId, ..........);会工作,但它告诉我它找不到状态。这是可以理解的,因为状态位于我尝试加入的 Table2 对象中。

**Table1**
id
column1
column2
mainId
List<Table2> table2List

**Table2**
id
table1_id
status
person_id

表 1 和 2 通过 table2 的 table_id 列链接。但是在 Table1 JPA 存储库中,我需要根据 Table2 中的条件获取所有 Table1。

我检查了“属性表达式”,但我不知道如何编写 jpa 方法名称

谢谢大家:)

【问题讨论】:

标签: java spring hibernate spring-data-jpa


【解决方案1】:

经过一段时间的环顾和尝试不同的事情......答案:

当要查询Table2时,需要在方法中添加如下:

findBymainIdAndTable2List_StatusInAndTable2List_personId

所以本质上是在该表中添加列表名称,后跟下划线和列名称。如果有人想添加更多内容,请随意:D 这就是我的工作方式

【讨论】:

    猜你喜欢
    • 2019-08-26
    • 2021-09-18
    • 2019-06-10
    • 2018-07-11
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-28
    相关资源
    最近更新 更多