HQL加入三个表

时间:2016-02-08 14:46:44

标签: java database hibernate join hql

我遇到了一些HQL问题,因为我是新手。即使我没有“简单查询”的问题,我目前仍然在三个表之间进行查询。

我已经阅读了这些教程,但是找不到符合我需求的有效示例。我会尽力解释我的问题:

我有三个不同的表格,我们将它们命名为HOUSESOWNERSOWNERINFOS

鉴于城镇ID,我需要列出该城镇的所有房屋包括该房屋所有者的名称和姓氏。< / p>

我制作了一个非常简单的图表来显示表格之间的联系:

enter image description here

我也不确定我应该使用哪种加入策略。任何形式的帮助都将受到高度赞赏,因为解决这个问题对我来说是一个优先事项。

提前致谢!

1 个答案:

答案 0 :(得分:1)

这只是一个模板

 public class Tag
{
    public virtual int Id
    { get; set; }

    public virtual string Name
    { get; set; }

    public virtual string UrlSlug
    { get; set; }

    public virtual string Description
    { get; set; }

    public virtual IList<Post> Posts
    { get; set; }
}

最简单的情况是使用所有者信息获取所有所有者

class House {

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "fk_town")
    private Town town;

    @OneToMany(mappedBy = "house")
    private List<Owner> owners;

}

class Owner {

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "fk_house")
    private House house;

    @OneToOne
    @JoinColumn(name = "fk_owner_info")
    private OwnerInfo ownerInfo;

}

class OwnerInfo {

    @OneToOne(mappedBy = "ownerInfo", fetch = FetchType.LAZY)
    private Owner owner;

}