doctrine select object而不获取所有列

时间:2013-04-23 16:38:40

标签: doctrine-orm

我有一个简单的功能

function getitembyid($id)
{
    $item = $em->find('models\Item', $id);
    return $item;
}

我在我的应用程序中使用此功能,我也使用它,例如:

$item = getitembyid($id);
$item->setName($name);
$em->flush();

问题现在已经到来,项目表中的一列包含大量文本数据,这使得此查询有时 - 非常慢 - 。 (在正常的sql中测试,没有那一列的选择很快,否则很慢)

有没有办法改变我的简单功能,避免选择该列而不破坏我的应用程序的功能(更新行必须工作而不触及那个大列)

1 个答案:

答案 0 :(得分:2)

这是一种部分对象方法。尝试:

$item = $em->createQuery("select partial i.{id,name} from models\Item i")
           ->getResult();

有关部分对象的更多信息:http://docs.doctrine-project.org/en/latest/reference/partial-objects.html