私は次のことをしようとしています:
/**
* @Entity
*/
class Player {
/**
*@Column
*@Id
*/
private $uuid; //gets assigned a Uuid in the constructor
/**
* @ManyToOne(targetEntity="Team", cascade={"persist"})
* @JoinColumn(referencedColumnName="uuid")
*/
private $team;
public function setTeam(Team $team) {
$this->team = $team;
}
//...
}
/**
* @Entity
*/
class Team {
/**
* @Column
* @Id
*/
private $uuid; //gets assigned a Uuid in the constructor
//...
}
$player = new Player;
$team = new Team;
$player->setTeam($team);
$entityManager->persist($player);
$entityManager->flush();
チームはデータベースに保持されません。
私の場合のように呼び出したくありません$entityManager->persist($team)
。チームは、永続化の知識がないコードの一部で作成されます。
私の期待は、cascade={"persist"}
オプションが EntityManager もチームを永続化することです。私の期待が間違っているのはなぜですか、または何が間違っているのですか?