アプリケーションに Symfony2 を使用しており、2 つのエンティティ マネージャーを使用しています。1 つは読み取り用で、もう 1 つは書き込み用です。
私はそのようなエンティティマネージャオブジェクトを作成しています:
$em = $this->getDoctrine()->getEntityManager('write');
$em = $this->getDoctrine()->getEntityManager('read');
最初は問題なく動作していましたが、現在、次のエラーが発生しています。
AppBundle\Entity\ProfileViewer#viewer
エンティティの持続操作をカスケードするように構成されていない関係 ' ' を通じて新しいエンティティが見つかりました:shamsi
。新しいエンティティを明示的に永続化するか、関係に対してカスケード永続化操作を構成します。
ここに私の ProfileViewer エンティティがあります:
/**
* AppBundle\Entity\ProfileViewer
*
* @ORM\Table(name="profile_viewer")
* @ORM\Entity
*/
class ProfileViewer
{
/**
* @var bigint $id
*
* @ORM\Column(name="id", type="bigint", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var bigint $userId
*
* @ORM\Column(name="user_id", type="bigint", nullable=false)
*/
private $userId;
/**
* @var datetime $viewedAt
*
* @ORM\Column(name="viewed_at", type="datetime", nullable=true)
*/
private $viewedAt;
/**
* @ORM\ManyToOne(targetEntity="user", inversedBy="viewers")
* @ORM\JoinColumn(name="viewer_id", referencedColumnName="id")
*/
private $viewer;
public function __construct()
{
$this->viewedAt = new \DateTime();
}
/**
* Get id
*
* @return bigint
*/
public function getId()
{
return $this->id;
}
/**
* Set userId
*
* @param bigint $userId
*/
public function setUserId($userId)
{
$this->userId = $userId;
}
/**
* Get UserId
*
* @return bigint
*/
public function getUserId()
{
return $this->userId;
}
/**
* Set viewedAt
*
* @param datetime $viewedAt
*/
public function setViewedAt($viewedAt)
{
$this->viewedAt = $viewedAt;
}
/**
* Get viewedAt
*
* @return datetime
*/
public function getViewedAt()
{
return $this->viewedAt;
}
/**
* Set viewer
*
* @param AppBundle\Entity\User $viewer
*/
public function setViewer(AppBundle\Entity\User $viewer)
{
$this->viewer = $viewer;
}
/**
* Get viewer
*
* @return AppBundle\Entity\User
*/
public function getViewer()
{
return $this->viewer;
}
}
このエラーは、2 つのエンティティ マネージャーを作成したときに発生します。