内部联接使用HQL(Inner join using HQL)

2019-08-02 19:54发布

我想内部联接两个表上的一列。 从DB方面,有没有映射,这件事情我不想讨论。

我想执行使用INNER JOIN和检索角色对象/结果HQL查询。

这里是我的HQL至今

session.createQuery( “从角色的角色INNER JOIN参与作为参与ON role.id = involvement.roleid WHERE involvement.id = X”)列表();

我看是不是可以用HQL。 我如何明确告诉Hibernate加入仅此列。

我想下面一个太

从角色的角色选择roleSpec,参与作为参与WHERE role.ID = involvement.role_id和involvement.id = 27251352

但我得到异常没有映射作用。

Answer 1:

请检查你的角色确实是一个映射的实体。 此外,你并不需要执行“ON” - Hibernate知道什么是连接列(我知道如何在JPA定义这个) - 所以没有必要在声明中提供。 它应该是 -

session.createQuery("from Role as role INNER JOIN Involvement as involvement WHERE involvement.id = X").list();

我假设你已经映射到角色表角色类,并映射到Involement表参与类。
也许你错误地使用表名,这就是为什么你的“未映射”的错误。
上次我写的HQL(而不是JPA-QL)我用下面的链接作为参考,它提供了所需的所有信息。



文章来源: Inner join using HQL