私のコード:
$item = new Entity\Item();
$item->setAccountId($account["id"]);
$item->setCategory((string)$data->category);
$item->setRegion((string)$data->region);
$item->setFlag(0);
$item->setRank(0);
$item->setPhone("");
$item->setEmail("");
$item->setURL((string)$data->url);
$item->setTags($tags);
//var_dump($item);
//die();
$this->em->persist($item);
$this->em->flush();
$this->em->clear();
注釈の関係:
/////////////////////////////////////////////////////////////////////////
// Relations //
/////////////////////////////////////////////////////////////////////////
/**
* @ManyToOne(targetEntity="Account", inversedBy="items")
* @JoinColumn(name="account_id", referencedColumnName="id")
*/
private $account;
/////////////////////////////////////////////////////////////////////////
// ForeingKey //
/////////////////////////////////////////////////////////////////////////
/**
* @Column(type="integer")
*/
protected $account_id;
古いドクトリン(2.0)を使用する場合、コードは機能します。2.2に設定すると、コードは次の例外をスローします。
SQLSTATE [23000]:整合性制約違反:1048列'account_id'をnullにすることはできません
2.2では、親エンティティを使用してChieldエンティティを挿入する必要がありますか?