使用连接表的spring数据查找查询

时间:2017-08-25 13:59:10

标签: java sql hibernate spring-data

我有这样的情况。我有两张关于一对多关系的表格。例如,表A包含列idA, someOtherIdA,表B包含列idB, forenKeyIdA, someImportanFieldFromB。 我也在使用spring数据,现在我需要创建方法

public B findBySomeOtherIdAAndsomeImportanFieldFromB(int someOtherIdA, int someImportanFieldFromB);

为此,我需要通过id

加入两个表
Select * From A Join B On A.idA = B.idB Where someOtherIdA = 1 someImportanFieldFromB = 1

我正在使用注释@Query来检索结果。 但问题是我无法自动将结果映射到对象B. 我怎么能这样做?如果不使用nativeQuery = true,它是否可以这样做?

1 个答案:

答案 0 :(得分:0)

我找到的最佳解决方案是使用JPQL或HQL来获取实体并映射它。在示例中,我写了它就像

@Query(SELECT b FROM A as a RIGHT JOIN a.forenKeyToAFromB b Where Somevalue=1)
public B findBySomeOtherIdAAndsomeImportanFieldFromB(int someOtherIdA, int someImportanFieldFromB);

此查询方法将实体映射到您现有的实体B并解决您的问题