【问题标题】:Join two Entities in a DQL Query在 DQL 查询中加入两个实体
【发布时间】:2014-04-14 08:04:52
【问题描述】:

我在我的 DQL 查询中使用注释有两个具有一对多关系的实体。这两个查询有什么区别?

1-

SELECT p, c FROM AcmeStoreBundle:Product p
    JOIN p.category c
WHERE p.id = :id

2-

SELECT p, c FROM AcmeStoreBundle:Product p
    JOIN AcmeStoreBundle:Category c
        ON p.categoryid = c.id
WHERE p.id = :id

当我检查基准时,我发现第二种方法花费的时间更少。有人可以列出每种方式的优缺点以及每种方式何时有用吗?

【问题讨论】:

  • 你能给出基准测试的结果吗?您可以通过displaying them比较结果查询。

标签: mysql sql symfony


【解决方案1】:

根据官方documentation,您无法执行第二个查询。我还没有真正尝试过,但你说这可能吗?如果是这样,我相信,以这种方式表达关系是不好的做法......

每个ORM 都是面向对象的,强调对象而不是ID。您的第二个查询看起来更像是关系数据库的本机查询,其中 JOIN 与 id 一起使用。

【讨论】:

    猜你喜欢
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 1970-01-01
    • 2018-06-18
    相关资源
    最近更新 更多