地域の雇用、教育、権力の詳細を保持する地域エンティティとregionEmploymentDetails、regionEducationDetails、regionPowerDetailsエンティティがあります。エンティティは異なるデータを保持するため、別々に保持されます。以下はクラスです、
class Region
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
*@ORM\OneToOne(targetEntity="RegionEducationDetails")
@ORM\JoinColumn(name="region_id", referencedColumnName="id")
**/
private $education_details;
/**
*@ORM\OneToOne(targetEntity="RegionEmploymentDetails")
@ORM\JoinColumn(name="region_id", referencedColumnName="id")
**/
private $employment_details;
/**
*@ORM\OneToOne(targetEntity="RegionPowerDetails")
@ORM\JoinColumn(name="region_id", referencedColumnName="id")
**/
private $power_details;
}
class RegionEducationDetails
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var integer
*
* @ORM\Column(name="region_id", type="integer", length=20)
*/
private $region_id;
}
class RegionEmploymentDetails
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var integer
*
* @ORM\Column(name="region_id", type="integer")
*/
private $region_id;
}
class RegionPowerDetails
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var integer
*
* @ORM\Column(name="region_id", type="integer")
*/
private $region_id;
}
問題は、コマンドを使用してスキーマを生成するときです
php app / console doctrine:schema:update --force
データベーステーブルを生成しますが、RegionEntityをRegionPowserDetailsEntityのみに関連付け、他のエンティティは関連付けません。
最後のマッピングのみを考慮しているため、最後のエンティティのみに関連しているようです。私が権力エンティティの関係を削除すると、それは権力の前にあるエンティティ、つまり雇用に関連します。
私は何か間違ったことをしていますか?この問題の解決策はありますか?