2017-08-23 51 views
1

在items.xml重新定義數據類型我有限定的數據類型作爲items.xml如下:在款Hybris

<attribute qualifier="daysOfWeek" type="java.lang.String"> 
        <persistence type="property" /> 
</attribute> 

要修改該數據類型枚舉,我重新定義它如下:

   <enumtype code="DaysOfWeek" autocreate="true" generate="true"> 
         <value code="Monday" /> 
         <value code="Tuesday" /> 
      </enumtype> 

     <attribute qualifier="daysOfWeek" type="DaysOfWeek"> 
       <persistence type="property" /> 
     </attribute> 

更新擴展後,我得到了SQLException.Is這種方法有什麼問題嗎?

回答

1

hybris在「正在運行」的系統中不支持像這樣的更新。 原因是hybris不會刪除任何db列並重新創建它們,因爲其中包含的任何數據都將丟失(加上可能難以爲多個支持的數據庫編寫此邏輯)。

如果您處於項目的開發階段,解決此問題的最簡單方法是從頭開始初始化您的系統(即它將丟棄數據庫並重新創建它)。

如果您有一個實時系統/生產系統,則需要採取另一種方法: 您將使用枚舉類型定義一個新屬性(名稱不同)。 然後,您可能會更新任何代碼以使用新字段。 您還必須負責數據遷移,即編寫一些將舊數據(例如字符串「星期一」轉換爲新的枚舉值)的腳本。

希望這會有所幫助!