小编Ant*_*ine的帖子

JPQL的INNER JOIN问题(即使SQL请求正在运行)

"bonjouràtous"(大家好)

我来自这个帖子: 如何用SQL中的另一列选择MAX(列值),DISTINCT的行?

这家伙几乎在我的项目中做了我需要的.事实上,我正在尝试做类似Git的事情:检索上一版本中的所有实例.目前,我有一个表"UM",具有以下属性:

  • int id(主键,自动生成)
  • 字符串名称(可以重复)
  • int版本(1,2,3,[...])
  • 字符串fmr
  • [其他属性,在这种情况下不使用]

我在SQL中也有这个请求(运行良好并检索想要的结果):

SELECT * FROM agrid.um AS u INNER JOIN
        (SELECT u2.name, max(u2.version) AS MaxVersion, u2.fmr
         FROM agrid.um AS u2 WHERE u2.fmr = 'CZ2ABVIMG0000' GROUP BY u2.name, u2.fmr) umVersion
         ON u.name = umVersion.name AND u.version = umVersion.MaxVersion
         WHERE u.fmr = 'ABCDE';
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在JPQL中执行相同操作时,我遇到了一些"JOIN"错误:

TypedQuery<UmEty> q = getManager().getEntityManager().createQuery(
            "SELECT u FROM UmEty u INNER JOIN"
            + " (SELECT u2.name, max(u2.version) AS MaxVersion, u2.fmr "
            + " FROM UmEty u2 WHERE u2.fmr = :fmr …
Run Code Online (Sandbox Code Playgroud)

java jpa jpql postgresql-10

6
推荐指数
1
解决办法
336
查看次数

标签 统计

java ×1

jpa ×1

jpql ×1

postgresql-10 ×1