2012-12-19 62 views
1

我需要在liferay中的現有表中添加一列。
我認爲重寫service.xml是向現有表添加列的方式。所需的service.xml存在於portal-impl\src\com\liferay\portal中。
現在我想知道在哪裏覆蓋這個文件(我正在使用tomcat和postgreSQL)。覆蓋liferay中現有的service.xml

回答

5

最好的做法是不要這樣做Liferay的表格 - 想象如果下一個版本的Liferay添加相同的列,但使用不同的語義會發生什麼。此外,不鼓勵直接更改源代碼 - 而是使用插件(例如,可能但不推薦,除非絕對必要,ext)。請注意,servicebuilder更改將在ext中被棄用,並且將來不會被支持,所以您被困在無法直接添加到Liferay表中的鉤子。

實現附加字段的推薦方式是使用自定義字段(API名稱Expando*)或使用新服務(從掛鉤或portlet)創建新實體,並將這些外鍵與外鍵鏈接到Liferay實體。

我知道,這並不回答你如何做到這一點的問題,但它給出了你應該如何思考以解決你沒有提到的潛在問題的選擇。

+2

+1對於「最好的做法是不要對Liferay的表進行這樣的操作 - 想象如果下一個版本的Liferay添加相同的列,但是具有不同的語義,會發生什麼。」 –