2

我有一个简单的功能

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

我在我的应用程序中经常使用这个功能,我也在使用它,例如:

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

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

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

4

1 回答 1

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

于 2013-04-23T16:44:08.597 回答