2

地域の雇用、教育、権力の詳細を保持する地域エンティティと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のみに関連付け、他のエンティティは関連付けません。

最後のマッピングのみを考慮しているため、最後のエンティティのみに関連しているようです。私が権力エンティティの関係を削除すると、それは権力の前にあるエンティティ、つまり雇用に関連します。

私は何か間違ったことをしていますか?この問題の解決策はありますか?

4

1 に答える 1

1

リージョンクラスは、

class Region {

/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;


private $education_details_id;

/**
 *@ORM\OneToOne(targetEntity="RegionEducationDetails")
  @ORM\JoinColumn(name="education_details_id", referencedColumnName="id")
**/

private $education_details;


private $employment_details_id; 

/**
 *@ORM\OneToOne(targetEntity="RegionEmploymentDetails")
  @ORM\JoinColumn(name="employment_details_id", referencedColumnName="id")
**/

private $employment_details; 


private $power_details_id;

/**
 *@ORM\OneToOne(targetEntity="RegionPowerDetails")
  @ORM\JoinColumn(name="power_details_id", referencedColumnName="id")
**/

private $power_details;

}
于 2013-02-08T12:37:55.293 に答える