Join without association in HQL

我们两清 提交于 2019-12-17 17:48:07

问题


Lets say I have two tables(A, B) like:

A {id, a, c}
B {id, b, c}

I have also their entities. I want to write an HQL so that the result set will be like (where A.c = B.c):

(a1, b1, c1)
(a2, b2, c2)
(a3, b3, c3)
...

Since on clauses are not supported by hibernate I am stuck and I don't know how to write the query.


回答1:


You have to use the cross join notation:

from A as table_a , B as table_b
where table_a.c = table_b.c

Of course there is no way to implement outer joins in this manner, so you might have some trouble if that's your case.

For the analogous case with criteria refer to: hibernate-criteria-joining-table-without-a-mapped-association




回答2:


if you want to make outer join you can make sub query and manage OR operation ( it works for me ). it's make the query more complex and worst performant but works :-)




回答3:


if both the table are related to each other via foreign key then you can try this:

let:

A {id(primary key), a, c} B {id(foreign key), b, c}

define a variable of type parent(A) with setter and getter in B class's pojo.after that you can write query in this way. let it 'AA'

select tbl_b.a,tbl_a.a,tbl_b.b,tbl_a.b,tbl_b.c,tbl_a.c from B tbl_b inner join tbl_b.AA tbl_b


来源:https://stackoverflow.com/questions/974085/join-without-association-in-hql

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!