如何在Hibernate中以单向多对一方式离开连接表?

jba*_*arz 8 java orm hibernate many-to-one

我是如何在单向多对一条件下连接表格的?.

如果你有两个班:

class A {
    @Id
    public Long id;
}

class B {
    @Id
    public Long id;
    @ManyToOne
    @JoinColumn(name = "parent_id", referencedColumnName = "id")
    public A parent;
}
Run Code Online (Sandbox Code Playgroud)

B - > A是多对一的关系.我知道我可以在A中添加B的集合但是我不想要这种关联.

所以我的实际问题是,是否有创建SQL查询的HQL或Criteria方法:

select * from A left join B on (b.parent_id = a.id)
Run Code Online (Sandbox Code Playgroud)

这将检索具有引用A的每个B记录的笛卡尔积的所有A记录,并且将包括没有B引用它们的A记录.

如果您使用:

from A a, B b where b.a = a
Run Code Online (Sandbox Code Playgroud)

那么它是一个内连接,你没有收到没有B引用它们的A记录.

我没有找到一个没有两个查询的好方法,所以任何不到这个都会很好.

谢谢.

Luc*_*ano 2

我用你发布的内容做了一个例子,我认为这可能有效:

select a,b from B as b left outer join b.parent as a在 HQL 中。

不过,我必须找到一种“标准”方式来做到这一点。