【问题标题】:JPA/Hibernate how to get N items of each categoryJPA/Hibernate如何获取每个类别的N个项目
【发布时间】:2014-11-10 09:05:07
【问题描述】:

假设我们在数据库中有以下 Car 实体:ID、名称、型号。

我想检索每个模型的 N 辆汽车。为简洁起见,如果我们有以下车型:BMW、Porche、Volkswagen,我想要 2 BMW、2 Porche 和 2 Volkswagen。

这是否可以通过单个 HQL 或 SQL 查询来实现?

到目前为止,我取得的最好成绩是为每个模型使用 3 个单独的查询。

【问题讨论】:

  • HQL 不适合这种类型的查询。一些分析 SQL 可能会有所帮助。告诉我们您正在使用什么数据库(oracle、mssql、...)?
  • 我正在使用 mysql 数据库。我并不想为此使用 HQL,我只需要它尽可能快。我已经按照 Stijn 的建议尝试了使用纯 SQL 的 UNION,它运行良好,但我仍在探索其他选项。

标签: java mysql sql hibernate hql


【解决方案1】:

不直接,不。

即使使用纯 SQL,您也必须使用 UNION 来完成此操作,而 HQL 不支持此操作。

您可以做的是创建一个 VIEW(用于 UNION)并将其映射到 Car 实体。

http://timezra.blogspot.de/2009/05/mapping-hibernate-entities-to-views.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    • 1970-01-01
    相关资源
    最近更新 更多