我想用 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;
但这给出了一个错误:
org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: (...
有什么方法可以使用 HQL 和 Hibernate 来实现吗?
最佳答案
尝试原生SQL解决方法:
需要先导入:
import org.hibernate.SQLQuery;
然后在你的代码中的某处:
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"
);
more on this link 强>
<强> and HERE (
Joins in Hibernate Query Language)
关于java - 在 HQL 上使用 select 进行内部连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11776932/