Câu hỏi đã cũ, nhưng nó có thể hữu ích cho ai đó.
Nếu loadClassMetada được gọi mỗi lần thì có vẻ như đó là vấn đề trong mã của bạn. Tuy nhiên, tôi cho rằng siêu dữ liệu đó được lưu vào bộ nhớ đệm theo học thuyết.
<?php
class FooController extends Controller {
function fooAction() {
$em = $this->getDoctrine()->getEntityManager();
$cm = $em->getClassMetadata('FooBundle:FooEntity');
$cm->setTableName('special_table_name');
$repo = $em->getRepository('FooBundle:FooEntity');
$entities = $repo->createQueryBuilder('f')
->setMaxResults(1)
->orderBy('f.id', 'desc')
->getQuery()
->getResult();
return new Response('');
}
}