2013-06-28 119 views
1

我有一個公司對象,它有許多bankAccount對象相關。但是,一家公司只需要一個活躍的銀行賬戶。Doctrine2 - 與默認值一對多關係

在公司對象中標記活動bankAccount的正確方法是什麼?

在我當前的實現中,我添加了一個名爲activeBankAccount的OneToOne單向字段,它最初可以爲空。它似乎工作,但有沒有更好的方法來做到這一點?

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; 
} 

回答

0

在我看來你有兩個選擇。首先是你的,它具有易於檢索和/或更新活動銀行賬戶的優點(只需要單個查詢或更新)。不幸的是,沒有什麼能阻止你設置一個不屬於銀行帳戶集合的activeBankAccount。另一種方法是直接向bankaccount類添加一個活動屬性。但是這對搜索和更新有缺點,在最後一種情況下,它至少需要兩次更新。

相關問題