Doctrine:RuntimeException - 并非所有标识符属性都可以在ResultSetMapping中找到

时间:2013-10-18 10:04:17

标签: doctrine-orm doctrine

我开始使用Doctrine并立即遇到麻烦。我有一个实体定义如下:

namespace AdminModule;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="admin_user")
 */
class User extends \Nette\Object
{

    /**
     * @ORM\Id
     * @ORM\Column(type="string", name="guid")
     * @var string
     */
    protected $id;

    /**
     * @ORM\Column(type="string")
     * @var string
     */
    protected $username;

    /**
     * @ORM\Column(type="string")
     * @var string
     */
    protected $password;

    /**
     * @ORM\Column(type="string")
     * @var string
     */
    protected $email;

    /**
     * @ORM\Column(type="datetime")
     * @var datetime
     */
    protected $registered;

    /**
     * @ORM\Column(type="datetime")
     * @var datetime
     */
    protected $last_login;

}

如果我打电话

$u = $this->em->getRepository('AdminModule\User')->createQueryBuilder()
            ->select('u.username, u.id')
            ->from('AdminModule\User', 'u');

我得到RuntimeException,指出缺少标识符属性“id”。但是,当我使用getQuery()和execute()运行上面的代码时,它会返回我想要的结果。

你能救我吗?如果需要更多信息,请告诉我。谢谢。

0 个答案:

没有答案