在HQL上选择内连接

Mon*_*ide 3 java hibernate hql

我想用HQL做类似的事情:

SELECT *
FROM tableA a
INNER JOIN (select fieldA, sum(fieldB) as sum from tableB) b
ON a.fieldA = b.fieldA and a.fieldC = b.sum;
Run Code Online (Sandbox Code Playgroud)

但是这给出了一个错误:

org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: (...
Run Code Online (Sandbox Code Playgroud)

有什么办法可以使用HQL和Hibernate来实现这个目的吗?

Joh*_*Woo 7

尝试本机SQL解决方案方法:

需要先进口:

import org.hibernate.SQLQuery;
Run Code Online (Sandbox Code Playgroud)

然后在你的代码中的某个地方:

SQLQuery query = session.createSQLQuery(
    "SELECT * FROM tableA a
    INNER JOIN 
    (SELECT fieldA, sum(fieldB) as sum from tableB) b
    ON a.fieldA = b.fieldA and a.fieldC = b.sum"
);
Run Code Online (Sandbox Code Playgroud)

更多关于此链接
和HERE(加入Hibernate查询语言)