Doctrine orm 在不获取所有列的情况下选择对象

Doctrine orm 在不获取所有列的情况下选择对象,doctrine-orm,Doctrine Orm,我有一个简单的函数 function getitembyid($id) { $item = $em->find('models\Item', $id); return $item; } 我在我的应用程序中经常使用此函数,例如: $item = getitembyid($id); $item->setName($name); $em->flush(); 现在问题来了,item表中的一列包含大量文本数据,这使得这个查询有时非常慢。(在普通sql中进行测试,选择不

我有一个简单的函数

function getitembyid($id)
{
    $item = $em->find('models\Item', $id);
    return $item;
}
我在我的应用程序中经常使用此函数,例如:

$item = getitembyid($id);
$item->setName($name);
$em->flush();
现在问题来了,item表中的一列包含大量文本数据,这使得这个查询有时非常慢。(在普通sql中进行测试,选择不包含该1列的选项速度快,否则速度慢)


有没有办法改变我的简单函数,避免选择该列,同时又不会破坏我的应用程序的功能(更新行必须在不触及该大列的情况下工作)

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

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

关于部分对象的更多信息:

我尝试过这个方法,但有两个问题:第一个问题:我无法选择与另一个对象的关系,第二个问题,它一直在说:致命错误:未捕获异常“条令\ORM\ununiqueresultexception”,我当然添加了一个“from models\Item i where id=”.$idedited。您将需要var_dump$item并调试一些,如果这不能解决它的话。您可能还需要改用getSingleResult()。