【问题标题】:JPA transform left join in inner join [closed]JPA在内部联接中转换左联接[关闭]
【发布时间】:2018-04-08 21:08:04
【问题描述】:

我向 JPA 提出了这个要求:

@Query("SELECT b FROM BonSav b " +
    "LEFT JOIN b.destinataire r " +
    "LEFT JOIN b.entite e " +
    "LEFT JOIN b.type t " +
    "LEFT JOIN b.etat et" +
    "LEFT JOIN b.lieu l " +
    "LEFT JOIN b.nature n " +
    "WHERE b.id = :id " +
    "AND b.estSupprimer = false" )
BonSav findOneWithAllEagerRelationships(@Param("id") Long id);

当我发起这个请求时,字段“lieu”的左连接变成了“内连接”,我不明白为什么;

你有解决这个问题的想法吗?

谢谢

【问题讨论】:

  • 我认为您的查询需要在"LEFT JOIN b.etat et"末尾留一个空格
  • 不错!!!这很容易.. 我不明白为什么我没有找到它。谢谢
  • @YCF_L 只是将其发布为答案 ^^
  • 我通常在每一行的开头放置空格,而不是结尾。这使得发现此类错误更容易,因为第一个非空白字符不再对齐。投票结束错字。
  • @Lino 我认为这是一个错字,不是吗? ^^

标签: java spring jpa spring-data-jpa


【解决方案1】:

这似乎是一个错字。 尝试在 "LEFT JOIN b.etat et" + 行中的“et”之后放置一个空格@

由于没有空间,JPA 以 etLEFT JOIN 进行查询,默认情况下 JOIN 被视为 INNER JOIN

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-19
    • 2020-09-24
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    相关资源
    最近更新 更多