Symfony 为何使用条令关系与本机查询

Symfony 为何使用条令关系与本机查询,symfony,orm,doctrine-orm,entity-relationship,nativequery,Symfony,Orm,Doctrine Orm,Entity Relationship,Nativequery,我有一个简单的问题。我看到了一个Symfony2教程,其中blogger在任何地方都使用了没有关系的简单实体,并且还使用条令本地查询进行连接和查询不同的实体 使用本机查询或每次构建关系,哪个更好 你好,Michael我认为这取决于结果集的处理方式。例如,假设以下关系: 一家公司有很多员工(1:N) 当该公司在每个请求中执行select查询并加载要显示的所有员工数据时,只需计算一下如果该公司有超过10000名员工会产生什么影响。在这种情况下,在模型中创建惰性关联可能是一种很好的做法: <?p

我有一个简单的问题。我看到了一个Symfony2教程,其中blogger在任何地方都使用了没有关系的简单实体,并且还使用条令本地查询进行连接和查询不同的实体

使用本机查询或每次构建关系,哪个更好


你好,Michael

我认为这取决于结果集的处理方式。例如,假设以下关系:

一家公司有很多员工(1:N)

当该公司在每个请求中执行select查询并加载要显示的所有员工数据时,只需计算一下如果该公司有超过10000名员工会产生什么影响。在这种情况下,在模型中创建惰性关联可能是一种很好的做法:

<?php

/**
 * @Entity
 */
class Company
{
    /**
     * @OneToMany(targetEntity="Employee", fetch="EXTRA_LAZY")
     */
    public $employees;
}
这是一个非常繁重的过程,因为我们要查询200个表来确定每个产品的存在。这可以通过简单的本机查询轻松缓解:

$query = $em->createNativeQuery('SELECT p.type, count(p.type) as total FROM Product p group by p.type', $rsm);
$result = $query->getArrayResult();

print_r($result);
// [0] => array('type' => 'candy', 'total' => 545),
// [1] => array('type' => 'icecream', 'total' => 344),
//...
// [199] => array('type' => 'foo', 'total' => 878),

我认为这取决于如何处理结果集。例如,假设以下关系:

一家公司有很多员工(1:N)

当该公司在每个请求中执行select查询并加载要显示的所有员工数据时,只需计算一下如果该公司有超过10000名员工会产生什么影响。在这种情况下,在模型中创建惰性关联可能是一种很好的做法:

<?php

/**
 * @Entity
 */
class Company
{
    /**
     * @OneToMany(targetEntity="Employee", fetch="EXTRA_LAZY")
     */
    public $employees;
}
这是一个非常繁重的过程,因为我们要查询200个表来确定每个产品的存在。这可以通过简单的本机查询轻松缓解:

$query = $em->createNativeQuery('SELECT p.type, count(p.type) as total FROM Product p group by p.type', $rsm);
$result = $query->getArrayResult();

print_r($result);
// [0] => array('type' => 'candy', 'total' => 545),
// [1] => array('type' => 'icecream', 'total' => 344),
//...
// [199] => array('type' => 'foo', 'total' => 878),

我认为这取决于如何处理结果集。例如,假设以下关系:

一家公司有很多员工(1:N)

当该公司在每个请求中执行select查询并加载要显示的所有员工数据时,只需计算一下如果该公司有超过10000名员工会产生什么影响。在这种情况下,在模型中创建惰性关联可能是一种很好的做法:

<?php

/**
 * @Entity
 */
class Company
{
    /**
     * @OneToMany(targetEntity="Employee", fetch="EXTRA_LAZY")
     */
    public $employees;
}
这是一个非常繁重的过程,因为我们要查询200个表来确定每个产品的存在。这可以通过简单的本机查询轻松缓解:

$query = $em->createNativeQuery('SELECT p.type, count(p.type) as total FROM Product p group by p.type', $rsm);
$result = $query->getArrayResult();

print_r($result);
// [0] => array('type' => 'candy', 'total' => 545),
// [1] => array('type' => 'icecream', 'total' => 344),
//...
// [199] => array('type' => 'foo', 'total' => 878),

我认为这取决于如何处理结果集。例如,假设以下关系:

一家公司有很多员工(1:N)

当该公司在每个请求中执行select查询并加载要显示的所有员工数据时,只需计算一下如果该公司有超过10000名员工会产生什么影响。在这种情况下,在模型中创建惰性关联可能是一种很好的做法:

<?php

/**
 * @Entity
 */
class Company
{
    /**
     * @OneToMany(targetEntity="Employee", fetch="EXTRA_LAZY")
     */
    public $employees;
}
这是一个非常繁重的过程,因为我们要查询200个表来确定每个产品的存在。这可以通过简单的本机查询轻松缓解:

$query = $em->createNativeQuery('SELECT p.type, count(p.type) as total FROM Product p group by p.type', $rsm);
$result = $query->getArrayResult();

print_r($result);
// [0] => array('type' => 'candy', 'total' => 545),
// [1] => array('type' => 'icecream', 'total' => 344),
//...
// [199] => array('type' => 'foo', 'total' => 878),

好的,明白了。但是这个本地查询有什么好处呢。应该有人使用它,还是使用查询语言和/或查询生成器更好?好的,清除。但是这个本地查询有什么好处呢。应该有人使用它,还是使用查询语言和/或查询生成器更好?好的,清除。但是这个本地查询有什么好处呢。应该有人使用它,还是使用查询语言和/或查询生成器更好?好的,清除。但是这个本地查询有什么好处呢。应该有人使用它,还是使用查询语言和/或查询生成器更好?