【发布时间】:2014-05-29 07:41:21
【问题描述】:
我遇到了一个小问题,我试图理解却徒劳无功...... 我有2节课。一个是抽象文档,称为“SpecificIndividual”,另一个是常规文档,称为“Individual”。
这就是我想要做的: SpecificIndividual 有一些属性和一些 getter/setter 方法。 Individual 继承 SpecificIndividual 并拥有自己的属性和 getters/setters 方法。
我使用了具有 COLLECTION_PER_CLASS 类型的 MappedSuperClass 继承。
我的问题是,当我使用“doctrine:mongodb:generate:documents”命令时,它会为抽象类生成所有 getter/setters 方法(这就是我想要的),为子类生成所有 getters/setters 方法(这也是我想要的)但是它将所有抽象类的getter/setter方法复制到子类中(这在继承中完全没有意义)。
我可能做错了什么,因为它在我使用 MySQL 和 Entities 时有效,但自从我搬到 MongoDB 后,我找不到正确的方法。
这是我的课程: 首先,特定个体:
namespace SpecificBundle\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
use Doctrine\Common\Collections\ArrayCollection;
/**
* SpecificIndividual
*
* @MongoDB\Document
* @MongoDB\InheritanceType("COLLECTION_PER_CLASS")
*/
abstract class Individual
{
/**
* @MongoDB\Id
*/
protected $individual_id;
/**
* @MongoDB\Boolean
*/
protected $chiped;
/**
* Get individualId
*
* @return id $individualId
*/
public function getIndividualId()
{
return $this->individual_id;
}
/**
* Set chiped
*
* @param boolean $chiped
* @return self
*/
public function setChiped($chiped)
{
$this->chiped = $chiped;
return $this;
}
/**
* Get chiped
*
* @return boolean $chiped
*/
public function getChiped()
{
return $this->chiped;
}
}
和子类个人:
namespace ChildBundle\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
use SpecificBundle\Document\Individual as SpecificIndividual;
/**
* Individual
*
* @MongoDB\Document(collection="individuals")
*/
class Individual extends SpecificIndividual
{
/**
* @MongoDB\String
*/
protected $someString;
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
}
/**
* Set someString
*
* @param String $someString
* @return self
*/
public function setSomeString(String $someString)
{
$this->someString = $someString;
return $this;
}
/**
* Get someString
*
* @return String $someString
*/
public function getSomeString()
{
return $this->someString;
}
}
我指望你们所有人提供帮助! 提前致谢。
【问题讨论】:
标签: mongodb symfony inheritance doctrine-orm mappedsuperclass