2013-02-06 53 views
1

我有Doctrine 2實體映射到Oracle數據庫表,並且此表有一個自動生成的ID列由一些觸發器,所以我想插入數據沒有ID列,如何可以我使它像只讀列一樣?即不將其包含在插入物中? 我知道我可以爲ID做一個自定義的生成策略,但我只是想讓它由數據庫處理,並且我希望能夠讀取它...刪除列從插入或更新原則2

回答

0

您是否試圖將您的字段映射爲以下內容?

/** 
* @Id 
* @Column(type="integer") 
* @GeneratedValue(strategy="IDENTITY") 
*/ 
protected $id; 

這將告訴ORM使用插入行的價值觀,以填補$id在你的對象。

+0

感謝您的回覆,我的問題是在oracle表中插入,關於http://docs.doctrine-project.org/en/2.0.x/reference/basic-mapping.html的文檔說「該策略目前不提供完全的可移植性,並受以下平臺支持:MySQL/SQLite(AUTO_INCREMENT),MSSQL(IDENTITY)和PostgreSQL(SERIAL)。「我不希望教條將ID包含在插入內容中,它會被觸發器填充......也許是一個序列或其他任何內容......我希望我現在可以清楚地說明我的問題......有幫助嗎? –

+0

首先,使用「最新」的文檔。 由於我不使用Oracle DB,因此您可以圍繞此用例編寫一個小型集成測試。我認爲'IDENTITY'應該可以解決您的問題。 – Ocramius

+0

啊哈...它工作得很好...謝謝... 可能應該改變文檔... :) –