Postgresql 条令表继承-未为实体指定标识符/主键
在以Postgres为数据库的条令2/Symfony 3中,我试图创建一个包含以下字段的表:Postgresql 条令表继承-未为实体指定标识符/主键,postgresql,symfony,doctrine-orm,Postgresql,Symfony,Doctrine Orm,在以Postgres为数据库的条令2/Symfony 3中,我试图创建一个包含以下字段的表: **actions-reviews** id action_id action_task_id document_id review_to review_date review_description review_by is_effective 该表链接到一个doc_id,该id是名为Document的实体的外键,或者链接到名为ActionTask的实体的action_task_id。为了实现这一点
**actions-reviews**
id
action_id
action_task_id
document_id
review_to
review_date
review_description
review_by
is_effective
该表链接到一个doc_id,该id是名为Document的实体的外键,或者链接到名为ActionTask的实体的action_task_id。为了实现这一点,我通过使用鉴别器来使用继承映射。在skipper中,实体关系如下所示:
正如您所见,ActionTask和ActionReview都是Action实体的子集
我的问题是在创建实体并运行php bin/console原则时:schema:update--force出现以下错误:
[Doctrine\ORM\Mapping\MappingException]
No identifier/primary key specified for Entity "AppBundle\Entity\ActionTask
Review". Every Entity must have an identifier/primary key.
在阅读论坛时,我将@ORM/Id添加到ActionTaskReview实体中,然后它会在没有任何错误的情况下更新DB。但是,当我查看postgres表时,只有document\u id字段,而没有action\u task\u id字段当我排除@ORM/id时,文档id没有抛出相同的错误,我做错了什么?
/**
* @ORM\Entity
* @ORM\Table(name="actions_reviews")
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="owner", type="string")
* @ORM\DiscriminatorMap({"document":"AppBundle\Entity\DocumentActionReview","action_task":"AppBundle\Entity\ActionTaskReview"})
* @Discriminator(field = "owner", map = {"document": "AppBundle\Entity\DocumentActionReview", "action_task": "AppBundle\Entity\ActionTaskReview"})
*/
abstract class ActionReview
{
/**
* @ORM\Id
* @ORM\Column(type="guid")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $review_date;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $review_description;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $is_effective;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Action", inversedBy="action_review")
* @ORM\JoinColumn(name="action_id", referencedColumnName="id")
*/
private $action;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Employee")
* @ORM\JoinColumn(name="review_to", referencedColumnName="id")
*/
private $review_to;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Employee")
* @ORM\JoinColumn(name="review_by", referencedColumnName="id")
*/
private $review_by;
/**
* Get id
*
* @return guid
*/
public function getId()
{
return $this->id;
}
/**
* Set reviewDate
*
* @param \DateTime $reviewDate
*
* @return ActionReview
*/
public function setReviewDate($reviewDate)
{
$this->review_date = $reviewDate;
return $this;
}
/**
* Get reviewDate
*
* @return \DateTime
*/
public function getReviewDate()
{
return $this->review_date;
}
/**
* Set reviewDescription
*
* @param string $reviewDescription
*
* @return ActionReview
*/
public function setReviewDescription($reviewDescription)
{
$this->review_description = $reviewDescription;
return $this;
}
/**
* Get reviewDescription
*
* @return string
*/
public function getReviewDescription()
{
return $this->review_description;
}
/**
* Set isEffective
*
* @param boolean $isEffective
*
* @return ActionReview
*/
public function setIsEffective($isEffective)
{
$this->is_effective = $isEffective;
return $this;
}
/**
* Get isEffective
*
* @return boolean
*/
public function getIsEffective()
{
return $this->is_effective;
}
/**
* Set action
*
* @param \AppBundle\Entity\Action $action
*
* @return ActionReview
*/
public function setAction(\AppBundle\Entity\Action $action = null)
{
$this->action = $action;
return $this;
}
/**
* Get action
*
* @return \AppBundle\Entity\Action
*/
public function getAction()
{
return $this->action;
}
/**
* Set reviewTo
*
* @param \AppBundle\Entity\Employee $reviewTo
*
* @return ActionReview
*/
public function setReviewTo(\AppBundle\Entity\Employee $reviewTo = null)
{
$this->review_to = $reviewTo;
return $this;
}
/**
* Get reviewTo
*
* @return \AppBundle\Entity\Employee
*/
public function getReviewTo()
{
return $this->review_to;
}
/**
* Set reviewBy
*
* @param \AppBundle\Entity\Employee $reviewBy
*
* @return ActionReview
*/
public function setReviewBy(\AppBundle\Entity\Employee $reviewBy = null)
{
$this->review_by = $reviewBy;
return $this;
}
/**
* Get reviewBy
*
* @return \AppBundle\Entity\Employee
*/
public function getReviewBy()
{
return $this->review_by;
}
}
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation\Exclude;
/**
* ActionTaskReview
* @ORM\Entity
*/
class ActionTaskReview
{
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\ActionTask", inversedBy="action_review")
* @ORM\JoinColumn(name="action_task_id", referencedColumnName="id") \AppBundle\Entity\ActionTask
*/
private $action_task;
/**
* Set actionTask
*
* @param \AppBundle\Entity\ActionTask $actionTask
*
* @return ActionTaskReview
*/
public function setActionTask(\AppBundle\Entity\ActionTask $actionTask = null)
{
$this->action_task = $actionTask;
return $this;
}
/**
* Get actionTask
*
* @return \AppBundle\Entity\ActionTask
*/
public function getActionTask()
{
return $this->action_task;
}
}
我的实体看起来像:
ActionReview.php
/**
* @ORM\Entity
* @ORM\Table(name="actions_reviews")
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="owner", type="string")
* @ORM\DiscriminatorMap({"document":"AppBundle\Entity\DocumentActionReview","action_task":"AppBundle\Entity\ActionTaskReview"})
* @Discriminator(field = "owner", map = {"document": "AppBundle\Entity\DocumentActionReview", "action_task": "AppBundle\Entity\ActionTaskReview"})
*/
abstract class ActionReview
{
/**
* @ORM\Id
* @ORM\Column(type="guid")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $review_date;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $review_description;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $is_effective;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Action", inversedBy="action_review")
* @ORM\JoinColumn(name="action_id", referencedColumnName="id")
*/
private $action;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Employee")
* @ORM\JoinColumn(name="review_to", referencedColumnName="id")
*/
private $review_to;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Employee")
* @ORM\JoinColumn(name="review_by", referencedColumnName="id")
*/
private $review_by;
/**
* Get id
*
* @return guid
*/
public function getId()
{
return $this->id;
}
/**
* Set reviewDate
*
* @param \DateTime $reviewDate
*
* @return ActionReview
*/
public function setReviewDate($reviewDate)
{
$this->review_date = $reviewDate;
return $this;
}
/**
* Get reviewDate
*
* @return \DateTime
*/
public function getReviewDate()
{
return $this->review_date;
}
/**
* Set reviewDescription
*
* @param string $reviewDescription
*
* @return ActionReview
*/
public function setReviewDescription($reviewDescription)
{
$this->review_description = $reviewDescription;
return $this;
}
/**
* Get reviewDescription
*
* @return string
*/
public function getReviewDescription()
{
return $this->review_description;
}
/**
* Set isEffective
*
* @param boolean $isEffective
*
* @return ActionReview
*/
public function setIsEffective($isEffective)
{
$this->is_effective = $isEffective;
return $this;
}
/**
* Get isEffective
*
* @return boolean
*/
public function getIsEffective()
{
return $this->is_effective;
}
/**
* Set action
*
* @param \AppBundle\Entity\Action $action
*
* @return ActionReview
*/
public function setAction(\AppBundle\Entity\Action $action = null)
{
$this->action = $action;
return $this;
}
/**
* Get action
*
* @return \AppBundle\Entity\Action
*/
public function getAction()
{
return $this->action;
}
/**
* Set reviewTo
*
* @param \AppBundle\Entity\Employee $reviewTo
*
* @return ActionReview
*/
public function setReviewTo(\AppBundle\Entity\Employee $reviewTo = null)
{
$this->review_to = $reviewTo;
return $this;
}
/**
* Get reviewTo
*
* @return \AppBundle\Entity\Employee
*/
public function getReviewTo()
{
return $this->review_to;
}
/**
* Set reviewBy
*
* @param \AppBundle\Entity\Employee $reviewBy
*
* @return ActionReview
*/
public function setReviewBy(\AppBundle\Entity\Employee $reviewBy = null)
{
$this->review_by = $reviewBy;
return $this;
}
/**
* Get reviewBy
*
* @return \AppBundle\Entity\Employee
*/
public function getReviewBy()
{
return $this->review_by;
}
}
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation\Exclude;
/**
* ActionTaskReview
* @ORM\Entity
*/
class ActionTaskReview
{
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\ActionTask", inversedBy="action_review")
* @ORM\JoinColumn(name="action_task_id", referencedColumnName="id") \AppBundle\Entity\ActionTask
*/
private $action_task;
/**
* Set actionTask
*
* @param \AppBundle\Entity\ActionTask $actionTask
*
* @return ActionTaskReview
*/
public function setActionTask(\AppBundle\Entity\ActionTask $actionTask = null)
{
$this->action_task = $actionTask;
return $this;
}
/**
* Get actionTask
*
* @return \AppBundle\Entity\ActionTask
*/
public function getActionTask()
{
return $this->action_task;
}
}
ActionTaskReview.php
/**
* @ORM\Entity
* @ORM\Table(name="actions_reviews")
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="owner", type="string")
* @ORM\DiscriminatorMap({"document":"AppBundle\Entity\DocumentActionReview","action_task":"AppBundle\Entity\ActionTaskReview"})
* @Discriminator(field = "owner", map = {"document": "AppBundle\Entity\DocumentActionReview", "action_task": "AppBundle\Entity\ActionTaskReview"})
*/
abstract class ActionReview
{
/**
* @ORM\Id
* @ORM\Column(type="guid")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $review_date;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $review_description;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $is_effective;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Action", inversedBy="action_review")
* @ORM\JoinColumn(name="action_id", referencedColumnName="id")
*/
private $action;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Employee")
* @ORM\JoinColumn(name="review_to", referencedColumnName="id")
*/
private $review_to;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Employee")
* @ORM\JoinColumn(name="review_by", referencedColumnName="id")
*/
private $review_by;
/**
* Get id
*
* @return guid
*/
public function getId()
{
return $this->id;
}
/**
* Set reviewDate
*
* @param \DateTime $reviewDate
*
* @return ActionReview
*/
public function setReviewDate($reviewDate)
{
$this->review_date = $reviewDate;
return $this;
}
/**
* Get reviewDate
*
* @return \DateTime
*/
public function getReviewDate()
{
return $this->review_date;
}
/**
* Set reviewDescription
*
* @param string $reviewDescription
*
* @return ActionReview
*/
public function setReviewDescription($reviewDescription)
{
$this->review_description = $reviewDescription;
return $this;
}
/**
* Get reviewDescription
*
* @return string
*/
public function getReviewDescription()
{
return $this->review_description;
}
/**
* Set isEffective
*
* @param boolean $isEffective
*
* @return ActionReview
*/
public function setIsEffective($isEffective)
{
$this->is_effective = $isEffective;
return $this;
}
/**
* Get isEffective
*
* @return boolean
*/
public function getIsEffective()
{
return $this->is_effective;
}
/**
* Set action
*
* @param \AppBundle\Entity\Action $action
*
* @return ActionReview
*/
public function setAction(\AppBundle\Entity\Action $action = null)
{
$this->action = $action;
return $this;
}
/**
* Get action
*
* @return \AppBundle\Entity\Action
*/
public function getAction()
{
return $this->action;
}
/**
* Set reviewTo
*
* @param \AppBundle\Entity\Employee $reviewTo
*
* @return ActionReview
*/
public function setReviewTo(\AppBundle\Entity\Employee $reviewTo = null)
{
$this->review_to = $reviewTo;
return $this;
}
/**
* Get reviewTo
*
* @return \AppBundle\Entity\Employee
*/
public function getReviewTo()
{
return $this->review_to;
}
/**
* Set reviewBy
*
* @param \AppBundle\Entity\Employee $reviewBy
*
* @return ActionReview
*/
public function setReviewBy(\AppBundle\Entity\Employee $reviewBy = null)
{
$this->review_by = $reviewBy;
return $this;
}
/**
* Get reviewBy
*
* @return \AppBundle\Entity\Employee
*/
public function getReviewBy()
{
return $this->review_by;
}
}
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation\Exclude;
/**
* ActionTaskReview
* @ORM\Entity
*/
class ActionTaskReview
{
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\ActionTask", inversedBy="action_review")
* @ORM\JoinColumn(name="action_task_id", referencedColumnName="id") \AppBundle\Entity\ActionTask
*/
private $action_task;
/**
* Set actionTask
*
* @param \AppBundle\Entity\ActionTask $actionTask
*
* @return ActionTaskReview
*/
public function setActionTask(\AppBundle\Entity\ActionTask $actionTask = null)
{
$this->action_task = $actionTask;
return $this;
}
/**
* Get actionTask
*
* @return \AppBundle\Entity\ActionTask
*/
public function getActionTask()
{
return $this->action_task;
}
}
DocumentActionReview.php
/**
* @ORM\Entity
* @ORM\Table(name="actions_reviews")
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="owner", type="string")
* @ORM\DiscriminatorMap({"document":"AppBundle\Entity\DocumentActionReview","action_task":"AppBundle\Entity\ActionTaskReview"})
* @Discriminator(field = "owner", map = {"document": "AppBundle\Entity\DocumentActionReview", "action_task": "AppBundle\Entity\ActionTaskReview"})
*/
abstract class ActionReview
{
/**
* @ORM\Id
* @ORM\Column(type="guid")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $review_date;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $review_description;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $is_effective;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Action", inversedBy="action_review")
* @ORM\JoinColumn(name="action_id", referencedColumnName="id")
*/
private $action;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Employee")
* @ORM\JoinColumn(name="review_to", referencedColumnName="id")
*/
private $review_to;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Employee")
* @ORM\JoinColumn(name="review_by", referencedColumnName="id")
*/
private $review_by;
/**
* Get id
*
* @return guid
*/
public function getId()
{
return $this->id;
}
/**
* Set reviewDate
*
* @param \DateTime $reviewDate
*
* @return ActionReview
*/
public function setReviewDate($reviewDate)
{
$this->review_date = $reviewDate;
return $this;
}
/**
* Get reviewDate
*
* @return \DateTime
*/
public function getReviewDate()
{
return $this->review_date;
}
/**
* Set reviewDescription
*
* @param string $reviewDescription
*
* @return ActionReview
*/
public function setReviewDescription($reviewDescription)
{
$this->review_description = $reviewDescription;
return $this;
}
/**
* Get reviewDescription
*
* @return string
*/
public function getReviewDescription()
{
return $this->review_description;
}
/**
* Set isEffective
*
* @param boolean $isEffective
*
* @return ActionReview
*/
public function setIsEffective($isEffective)
{
$this->is_effective = $isEffective;
return $this;
}
/**
* Get isEffective
*
* @return boolean
*/
public function getIsEffective()
{
return $this->is_effective;
}
/**
* Set action
*
* @param \AppBundle\Entity\Action $action
*
* @return ActionReview
*/
public function setAction(\AppBundle\Entity\Action $action = null)
{
$this->action = $action;
return $this;
}
/**
* Get action
*
* @return \AppBundle\Entity\Action
*/
public function getAction()
{
return $this->action;
}
/**
* Set reviewTo
*
* @param \AppBundle\Entity\Employee $reviewTo
*
* @return ActionReview
*/
public function setReviewTo(\AppBundle\Entity\Employee $reviewTo = null)
{
$this->review_to = $reviewTo;
return $this;
}
/**
* Get reviewTo
*
* @return \AppBundle\Entity\Employee
*/
public function getReviewTo()
{
return $this->review_to;
}
/**
* Set reviewBy
*
* @param \AppBundle\Entity\Employee $reviewBy
*
* @return ActionReview
*/
public function setReviewBy(\AppBundle\Entity\Employee $reviewBy = null)
{
$this->review_by = $reviewBy;
return $this;
}
/**
* Get reviewBy
*
* @return \AppBundle\Entity\Employee
*/
public function getReviewBy()
{
return $this->review_by;
}
}
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation\Exclude;
/**
* ActionTaskReview
* @ORM\Entity
*/
class ActionTaskReview
{
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\ActionTask", inversedBy="action_review")
* @ORM\JoinColumn(name="action_task_id", referencedColumnName="id") \AppBundle\Entity\ActionTask
*/
private $action_task;
/**
* Set actionTask
*
* @param \AppBundle\Entity\ActionTask $actionTask
*
* @return ActionTaskReview
*/
public function setActionTask(\AppBundle\Entity\ActionTask $actionTask = null)
{
$this->action_task = $actionTask;
return $this;
}
/**
* Get actionTask
*
* @return \AppBundle\Entity\ActionTask
*/
public function getActionTask()
{
return $this->action_task;
}
}
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="documents_actions_reviews")
*/
class DocumentActionReview extends \AppBundle\Entity\ActionReview
{
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Document", inversedBy="action_review")
* @ORM\JoinColumn(name="document_id", referencedColumnName="id")
*/
private $document;
/**
* Set document
*
* @param \AppBundle\Entity\Document $document
*
* @return DocumentActionReview
*/
public function setDocument(\AppBundle\Entity\Document $document = null)
{
$this->document = $document;
return $this;
}
/**
* Get document
*
* @return \AppBundle\Entity\Document
*/
public function getDocument()
{
return $this->document;
}
}
每个实体类都必须有一个标识符/主键。您可以选择用作带有@Id注释的标识符的字段
`/**
* @ORM\Column(type="integer")
* @ORM\Id
* @GeneratedValue
*/
private $id;`
首先,您的ActionTaskReview
应该扩展ActionReview:
/**
* @ORM\Entity
* @ORM\Table(name="actions_reviews")
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="owner", type="string")
* @ORM\DiscriminatorMap({"document":"AppBundle\Entity\DocumentActionReview","action_task":"AppBundle\Entity\ActionTaskReview"})
* @Discriminator(field = "owner", map = {"document": "AppBundle\Entity\DocumentActionReview", "action_task": "AppBundle\Entity\ActionTaskReview"})
*/
abstract class ActionReview
{
/**
* @ORM\Id
* @ORM\Column(type="guid")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $review_date;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $review_description;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $is_effective;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Action", inversedBy="action_review")
* @ORM\JoinColumn(name="action_id", referencedColumnName="id")
*/
private $action;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Employee")
* @ORM\JoinColumn(name="review_to", referencedColumnName="id")
*/
private $review_to;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Employee")
* @ORM\JoinColumn(name="review_by", referencedColumnName="id")
*/
private $review_by;
/**
* Get id
*
* @return guid
*/
public function getId()
{
return $this->id;
}
/**
* Set reviewDate
*
* @param \DateTime $reviewDate
*
* @return ActionReview
*/
public function setReviewDate($reviewDate)
{
$this->review_date = $reviewDate;
return $this;
}
/**
* Get reviewDate
*
* @return \DateTime
*/
public function getReviewDate()
{
return $this->review_date;
}
/**
* Set reviewDescription
*
* @param string $reviewDescription
*
* @return ActionReview
*/
public function setReviewDescription($reviewDescription)
{
$this->review_description = $reviewDescription;
return $this;
}
/**
* Get reviewDescription
*
* @return string
*/
public function getReviewDescription()
{
return $this->review_description;
}
/**
* Set isEffective
*
* @param boolean $isEffective
*
* @return ActionReview
*/
public function setIsEffective($isEffective)
{
$this->is_effective = $isEffective;
return $this;
}
/**
* Get isEffective
*
* @return boolean
*/
public function getIsEffective()
{
return $this->is_effective;
}
/**
* Set action
*
* @param \AppBundle\Entity\Action $action
*
* @return ActionReview
*/
public function setAction(\AppBundle\Entity\Action $action = null)
{
$this->action = $action;
return $this;
}
/**
* Get action
*
* @return \AppBundle\Entity\Action
*/
public function getAction()
{
return $this->action;
}
/**
* Set reviewTo
*
* @param \AppBundle\Entity\Employee $reviewTo
*
* @return ActionReview
*/
public function setReviewTo(\AppBundle\Entity\Employee $reviewTo = null)
{
$this->review_to = $reviewTo;
return $this;
}
/**
* Get reviewTo
*
* @return \AppBundle\Entity\Employee
*/
public function getReviewTo()
{
return $this->review_to;
}
/**
* Set reviewBy
*
* @param \AppBundle\Entity\Employee $reviewBy
*
* @return ActionReview
*/
public function setReviewBy(\AppBundle\Entity\Employee $reviewBy = null)
{
$this->review_by = $reviewBy;
return $this;
}
/**
* Get reviewBy
*
* @return \AppBundle\Entity\Employee
*/
public function getReviewBy()
{
return $this->review_by;
}
}
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation\Exclude;
/**
* ActionTaskReview
* @ORM\Entity
*/
class ActionTaskReview
{
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\ActionTask", inversedBy="action_review")
* @ORM\JoinColumn(name="action_task_id", referencedColumnName="id") \AppBundle\Entity\ActionTask
*/
private $action_task;
/**
* Set actionTask
*
* @param \AppBundle\Entity\ActionTask $actionTask
*
* @return ActionTaskReview
*/
public function setActionTask(\AppBundle\Entity\ActionTask $actionTask = null)
{
$this->action_task = $actionTask;
return $this;
}
/**
* Get actionTask
*
* @return \AppBundle\Entity\ActionTask
*/
public function getActionTask()
{
return $this->action_task;
}
}
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation\Exclude;
/**
* ActionTaskReview
* @ORM\Entity
*/
class ActionTaskReview extends ActionReview
{
...
}
然后,我不确定您想要实现什么,因为您正在使用,但正在设置@ORM\Table(name=“documents\u actions\u reviews”)
对DocumentActionReview类的注释。如果继承的实体需要自己的表,请切换到,或者删除注释 谢谢你,我错过了一篇评论!
/**
* @ORM\Entity
* @ORM\Table(name="actions_reviews")
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="owner", type="string")
* @ORM\DiscriminatorMap({"document":"AppBundle\Entity\DocumentActionReview","action_task":"AppBundle\Entity\ActionTaskReview"})
* @Discriminator(field = "owner", map = {"document": "AppBundle\Entity\DocumentActionReview", "action_task": "AppBundle\Entity\ActionTaskReview"})
*/
abstract class ActionReview
{
/**
* @ORM\Id
* @ORM\Column(type="guid")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $review_date;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $review_description;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $is_effective;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Action", inversedBy="action_review")
* @ORM\JoinColumn(name="action_id", referencedColumnName="id")
*/
private $action;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Employee")
* @ORM\JoinColumn(name="review_to", referencedColumnName="id")
*/
private $review_to;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Employee")
* @ORM\JoinColumn(name="review_by", referencedColumnName="id")
*/
private $review_by;
/**
* Get id
*
* @return guid
*/
public function getId()
{
return $this->id;
}
/**
* Set reviewDate
*
* @param \DateTime $reviewDate
*
* @return ActionReview
*/
public function setReviewDate($reviewDate)
{
$this->review_date = $reviewDate;
return $this;
}
/**
* Get reviewDate
*
* @return \DateTime
*/
public function getReviewDate()
{
return $this->review_date;
}
/**
* Set reviewDescription
*
* @param string $reviewDescription
*
* @return ActionReview
*/
public function setReviewDescription($reviewDescription)
{
$this->review_description = $reviewDescription;
return $this;
}
/**
* Get reviewDescription
*
* @return string
*/
public function getReviewDescription()
{
return $this->review_description;
}
/**
* Set isEffective
*
* @param boolean $isEffective
*
* @return ActionReview
*/
public function setIsEffective($isEffective)
{
$this->is_effective = $isEffective;
return $this;
}
/**
* Get isEffective
*
* @return boolean
*/
public function getIsEffective()
{
return $this->is_effective;
}
/**
* Set action
*
* @param \AppBundle\Entity\Action $action
*
* @return ActionReview
*/
public function setAction(\AppBundle\Entity\Action $action = null)
{
$this->action = $action;
return $this;
}
/**
* Get action
*
* @return \AppBundle\Entity\Action
*/
public function getAction()
{
return $this->action;
}
/**
* Set reviewTo
*
* @param \AppBundle\Entity\Employee $reviewTo
*
* @return ActionReview
*/
public function setReviewTo(\AppBundle\Entity\Employee $reviewTo = null)
{
$this->review_to = $reviewTo;
return $this;
}
/**
* Get reviewTo
*
* @return \AppBundle\Entity\Employee
*/
public function getReviewTo()
{
return $this->review_to;
}
/**
* Set reviewBy
*
* @param \AppBundle\Entity\Employee $reviewBy
*
* @return ActionReview
*/
public function setReviewBy(\AppBundle\Entity\Employee $reviewBy = null)
{
$this->review_by = $reviewBy;
return $this;
}
/**
* Get reviewBy
*
* @return \AppBundle\Entity\Employee
*/
public function getReviewBy()
{
return $this->review_by;
}
}
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation\Exclude;
/**
* ActionTaskReview
* @ORM\Entity
*/
class ActionTaskReview
{
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\ActionTask", inversedBy="action_review")
* @ORM\JoinColumn(name="action_task_id", referencedColumnName="id") \AppBundle\Entity\ActionTask
*/
private $action_task;
/**
* Set actionTask
*
* @param \AppBundle\Entity\ActionTask $actionTask
*
* @return ActionTaskReview
*/
public function setActionTask(\AppBundle\Entity\ActionTask $actionTask = null)
{
$this->action_task = $actionTask;
return $this;
}
/**
* Get actionTask
*
* @return \AppBundle\Entity\ActionTask
*/
public function getActionTask()
{
return $this->action_task;
}
}