当前位置: 首页 > 面试题库 >

HQL如何加入三表

柴深
2023-03-14
问题内容

我有以下课程:

 @Entity
 public class Category {
    private Long Id;
    private String name;
    private String description;
    private List<Product> products;
}

@Entity
public class Inventory {

    private Long id;
    private Product product;
    private int quantity;
}

@Entity
public class Product {
    private Long productId;
    private String name;
}

我想获取在类别中指定ID的广告资源。我正在尝试使用这个

return session.createQuery("select i from Inventory i, Category c join c.Products p outer join i.product = p WHERE c.Id=?")
                .setParameter(0, categoryId).list();

我真的很困惑,请帮忙。谢谢。


问题答案:

好吧,没关系,我知道了怎么做

Select i from Inventory i,Category c INNER JOIN i.product ip INNER JOIN c.products cp where ip = cp and c.id=?

因此,我实际上想知道如何将类别与联接相关联,我在HQL文档中的“多态查询”下找到了答案。



 类似资料:
  • 问题内容: 我正在使用codeigniter框架开发一个音乐cms。我在mysql数据库中有3个表,目前我正在“相册”表和“模型,控制器”中工作。我想选择“专辑”表1并用“类别”->“ cat_id”联接“专辑”->“ cat_id”,并获取所有类别记录。 然后,我想在“ Soundtrack”->“ album_id”上加入“ Album”->“ album_id”,然后获取所有音轨记录A至Z。

  • 问题内容: 我刚进入hibernate状态,遇到了以下问题:我收到了 “希望加入的路径!” 当我尝试运行此查询时出现异常: 我想选择给定航班已售出机票的平均价格。 我的代码是: Flight.hbm.xml Ticket.hbm.xml 所有其他没有JOIN的查询都可以正常工作。我不知道问题出在哪里。 正确的查询是: 并与查询执行一起: 问题答案: 如您所链接的问题和Hibernate文档中所述,

  • 我刚开始Hibernate,遇到了以下问题:我得到了“加入的路径!” 尝试运行此查询时出现异常: 我想选择给定航班已售出的机票的平均价格。 我已经检查了这些链接,但我没有解决我的问题:HQL左连接:连接预期的路径hql内部连接预期的路径!错误 我的代码是: 航班.hbm.xml 票据.hbm.xml 没有JOIN的所有其他查询都可以正常工作。我不知道问题出在哪里。 正确的问题是: 连同查询执行:

  • 问题内容: 我正在努力编写一个HQL查询以在表中插入新记录。我已经看到了一些插入查询,如下所示,但我不想从下面的代码插入另一个表中的数据。 例如,我有一个表“ User”,其中有三个字段,例如名称,年龄,数字,并且有该用户表的实体。插入查询将是什么? 问题答案: 在HQL中,仅支持INSERT INTO…SELECT…。没有INSERT INTO…VALUES。HQL仅支持从另一个表插入。 因此可

  • 问题内容: 我刚进入休眠状态,遇到了以下问题:我收到了 “希望加入的路径!” 当我尝试运行此查询时出现异常: 我的代码是: Flight.hbm.xml Ticket.hbm.xml 所有其他没有JOIN的查询都可以正常工作。我不知道问题出在哪里。 正确的查询是: 并与查询执行一起: 问题答案: 如您所链接的问题和Hibernate文档中所述,实体之间的连接使用关联。所以正确的查询是 还要注意,与

  • 问题内容: 可以说我有两个表(A,B),例如: 我也有他们的实体。我想编写一个HQL,以便结果集类似于(其中Ac = Bc): 由于hibernate不支持子句,因此我很困,而且我不知道如何编写查询。 问题答案: 您必须使用交叉联接表示法: 当然,没有办法以这种方式实现外部联接,因此,在这种情况下,您可能会遇到一些麻烦。