2

関連する多くの bankAccount オブジェクトを持つ会社オブジェクトがあります。ただし、1 つの会社でアクティブな bankAccount を 1 つだけ持つ必要があります。

company オブジェクトでアクティブな bankAccount をマークする正しい方法は何ですか?

私の現在の実装では、最初は null 可能である activeBankAccount と呼ばれる OneToOne Unidirectional フィールドを追加しました。動作しているように見えますが、これを行うより良い方法はありますか?

class Company
{

/**
 * @ORM\OneToMany(targetEntity="BankAccount", mappedBy="company")
 */
private $bankAccounts;

/**
 * @ORM\OneToOne(targetEntity="BankAccount")
 * @ORM\JoinColumn(name="bank_account_id", referencedColumnName="id", nullable=true)
 */
private $activeBankAccount;

}

class BankAccount
{

/**
 * @ORM\ManyToOne(targetEntity="Company", inversedBy="bankAccounts")
 * @ORM\JoinColumn(name="company_id", referencedColumnName="id", nullable=false)
 */
private $company;
}
4

1 に答える 1