【发布时间】:2010-03-04 23:18:22
【问题描述】:
我正在背靠How to join tables in unidirectional many-to-one condition?。
如果你有两个班级:
class A {
@Id
public Long id;
}
class B {
@Id
public Long id;
@ManyToOne
@JoinColumn(name = "parent_id", referencedColumnName = "id")
public A parent;
}
B -> A 是多对一关系。我知道我可以向 A 添加一个 B 集合,但是我不想要这种关联。
所以我的实际问题是,是否有创建 SQL 查询的 HQL 或 Criteria 方式:
select * from A left join B on (b.parent_id = a.id)
这将检索所有引用 A 的 B 记录的笛卡尔积的所有 A 记录,并将包括没有 B 引用它们的 A 记录。
如果你使用:
from A a, B b where b.a = a
那么它是一个内部连接,您不会收到没有 B 引用它们的 A 记录。
如果没有两个查询,我还没有找到一个很好的方法,所以如果没有两个查询,那就太好了。
谢谢。
【问题讨论】:
-
@Joe B 而你想要的是...... ???
-
@Arthur Ronald F D Garcia:我需要一种标准或 HQL 方法来生成我上面写的原始 SQL 查询。我已经编辑了帖子以加粗实际问题。
标签: java hibernate orm many-to-one