繁体   English   中英

使用HQL进行内部联接

[英]Inner join using HQL

我试图在一列上连接两个表。 从DB方面来说,没有映射,因为它是我不想讨论的东西。

我想使用INNER JOIN执行HQL查询并检索ROLE对象/结果。

到目前为止这是我的hql

session.createQuery(“来自ROLE作为角色INNER JOIN INVOLVEMENT作为参与ON role.id = involvement.roleid WHERE involvement.id = X”)。list();

我在HQL上看不到ON。 我如何明确地告诉Hibernate只在这个列上加入。

我也在下面尝试过

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

但我在异常中没有映射到ROLE。

请检查您的ROLE确实是映射实体。 另外,你不需要执行“ON” - hibernate知道什么是连接列(我知道如何在JPA中定义它) - 所以不需要在语句中提供它。 它应该是 -

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

我假设您将Role类映射到ROLE表,并将Involvement类映射到Involement表。
也许你错误地使用了表名,这就是你得到“not mapped”错误的原因。
上次我编写HQL(而不是JPA-QL)时,我使用以下链接作为参考,它提供了所需的所有信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM