2014-01-21 52 views
0

我有一个邮政实体,可能代表邮寄或评论到另一个职位。在Doctrine中使用局部选择获取映射字段

/** 
* @ORM\ManyToOne(targetEntity="Post", inversedBy="comments") 
*/ 
private $post; 
public function setPost($post) { $this->post = $post; return $this; } 
public function getPost() { return $this->post; } 

/** 
* @ORM\OneToMany(targetEntity="Post", mappedBy="post", cascade={"remove"}) 
*/ 
private $comments; 
public function getComments() { return $this->comments; } 
.... 

所以通常我可以通过->getPost();得到父邮件。

现在我想优化请求,并使用部分选择这样一个

$query = $this->getEntityManager() 
->createQuery(
    "SELECT partial post.{id, title, Post} 
    FROM XXXMyBundle:Post post 
    ORDER BY post.id ASC 
    ") 

但每次我看到像

错误有一个名为“邮报”上

类没有映射场

我试图将查询中的字段名称更改为post_id,postpostId但它没有帮助。

有没有办法获得post_id(这是数据库中字段的名称)?

回答

1

好的,感谢question我解决了我的问题。

"SELECT partial post.{id, title}, partial p.{id} 
      FROM XXXMyBundle:Post post 
      LEFT JOIN post.post p 
      ORDER BY post.id ASC