2017-08-25 38 views
0

我有这种情况。我有两个关系一对多的表。例如表A的列idA, someOtherIdA和表B的列idB, forenKeyIdA, someImportanFieldFromB。 还有我用弹簧的数据,现在我需要创建方法使用连接表弹簧数据查找查询

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的情况下这样做?

+0

什么'[从B连接A ...'? – StanislavL

+0

@StanislavL你是什么意思?只需更改订单?或者使用其他语言? –

回答

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和解决您的TASL