【问题标题】:Finding query using spring data with joining tables使用带有连接表的弹簧数据查找查询
【发布时间】:2018-02-03 14:28:31
【问题描述】:

我有这样的情况。我有两张具有一对多关系的表。例如表 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 是否可以这样做?

【问题讨论】:

  • From B join A ... 呢?
  • @StanislavL 你是什么意思?只是改变顺序?还是使用其他语言?

标签: java sql hibernate spring-data


【解决方案1】:

我发现的最佳解决方案是使用 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 并解决您的任务

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 2019-03-13
    • 2017-11-07
    • 2016-12-21
    • 1970-01-01
    • 2012-08-17
    相关资源
    最近更新 更多