【问题标题】:How to have multiple conditions in JPQL join如何在 JPQL join 中有多个条件
【发布时间】:2012-06-21 11:26:28
【问题描述】:

我想使用JPQL 加入两个表:

SELECT * FROM A LEFT JOIN 
B ON A.ID = B.A_ID AND B.lng = 'en'

重要的部分是AND B.lng = 'en'

这在JPQL 中可行吗?

【问题讨论】:

  • 您解决了吗?我有一个类似的问题,张贴在[这里][1]。 [1]:stackoverflow.com/questions/28633921/…
  • 它在 SQL 中工作,但不能将其转换为 JPQL。使用 JPQL 仍然无法在 ON 条件列表中添加 AND B.lng = 'en' 条件。

标签: jpa jpql


【解决方案1】:

JPA 2.0 不支持 ON 子句,但 JPA 2.1 草案支持。

EclipseLink 2.4 支持 ON 子句。

看, http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/JPQL#ON

【讨论】:

  • HQL 使用 with 关键字支持它:select a from A a left join a.b b with b.language = 'en'
【解决方案2】:

是的,有可能,有一个similar question here。但是,如果您的实体被映射,您应该能够在查询中访问它们。

【讨论】:

  • 嗨,约翰,感谢您的反馈,但是AND 部分在左连接中的示例在哪里......而不是在哪里
  • 我不确定你所说的 and 部分在左连接而不是在哪里是什么意思?
  • 你的意思是有两个连接条件?
  • 我快速搜索了一下(假设你的意思是条件连接)java2s.com/Questions_And_Answers/JPA/Join/condition.htm
  • 是的,我的意思是有条件的外部联接
猜你喜欢
  • 2012-03-31
  • 2014-12-17
  • 2013-01-11
  • 2015-07-17
  • 2023-03-29
  • 2013-09-25
  • 1970-01-01
  • 1970-01-01
  • 2016-10-07
相关资源
最近更新 更多