使用@Query的2表查询的Spring JPA方法名称

时间:2018-06-06 20:49:29

标签: java spring hibernate spring-data-jpa

EDITTED

好奇......我有一个自定义的Spring JPA查询,我不知道该怎么写。

我正在扩展PagingAndSortingRepository

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

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

我认为: public Page 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存储库中,我需要根据表2中的条件获取所有Table1。

我检查了&#34;属性表达式&#34;但是我没有抓住如何编写jpa方法名称

谢谢你们:)

1 个答案:

答案 0 :(得分:0)

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

如果要在Table2上查询,则需要将其添加到方法中:

findBymainIdAndTable2List_StatusInAndTable2List_personId

所以基本上添加列表名称后跟下划线和该表中的列名称。如果有人想要添加更多,def感觉自由:D这就是我开始工作的方式