找不到实体存储库方法


Entity Repository Method not found

我在使用方法Repository时遇到了一些问题。我想找到所有的用户从城市(地址)从省从州。我认为在Repository中划分所有请求方法以提高可重用性是很好的。我打电话给:

$addr_repo = $this->getEntityManager()
                 ->getRepository('BtpUserProBundle:Address');
$address[$key] = $addr_repo->findByProvince($province->getId());

我的方法按省份查找:

namespace Btp'UserProBundle'Repository;
use Doctrine'ORM'EntityRepository;
/**
* AddressRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class AddressRepository extends EntityRepository
{
public function findByProvince($province_id)
{
    var_dump("lol");
    $ret = $this->getEntityManager()
        ->createQuery('SELECT a FROM Btp'UserProBundle'Entity'Address a JOIN a.province p WHERE p.id = :val')
        ->setParameter('val', $province_id)
        ->getResult();        
    var_dump($ret);     
    return $ret;
}

地址:

* @ORM'Table(name="address")
* @ORM'Entity(repositoryClass="Btp'UserProBundle'Repository'AddressRepository")
* @ORM'Entity
*/
class Address {//somethink}

不显示"lol"。但我没有任何错误。另一个问题;你认为在另一个存储库中使用存储库(从概念上讲)是一种糟糕的做法吗

感谢

正如我的评论中所提到的,您应该删除Address类声明中的第二个@ORM'Entity

* @ORM'Table(name="address")
* @ORM'Entity(repositoryClass="Btp'UserProBundle'Repository'AddressRepository")
* @ORM'Entity <---- remove this
*/