如何在单向多对一条件下连接表?

时间:2010-03-03 01:21:03

标签: hibernate

我有两节课。例如:

class A {
public Long id ;
}
class B {
public Long id ;
public A a ;
}

B和A有多对一的关系。 我可以像这样得到B的列表:

"from B b left join b.a a where a.id > 10 and b.id > 10 " 。 但是如何在相同的连接条件下获得A列表呢?我无法导航A到B,有什么解决方案吗?我可以使用标准吗?

ps:我可以这样做:

select a from A a , B b where b.a.id = a.id”?

2 个答案:

答案 0 :(得分:0)

小心

select a from A a , B b where b.a.id = a.id

我认为你可能会在最终的sql查询的from子句中找到两次表A(一个是由于来自hql from子句的'A a'而第二个是由于where子句中的baid,自动由hibernate添加。(但我不确定,你需要检查它。)

select b.a from B b left join b.a a where a.id > 10 and b.id > 10

工作?

答案 1 :(得分:0)

您的示例应该有效,但您尝试过:

select b.a from B b where b.id > 10 and b.a.id > 10

是的,这应该可以使用Criterias。