2017-08-23 32 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列并重新创建它们,因为其中包含的任何数据都将丢失(加上可能难以为多个支持的数据库编写此逻辑)。

如果您处于项目的开发阶段,解决此问题的最简单方法是从头开始初始化您的系统(即它将丢弃数据库并重新创建它)。

如果您有一个实时系统/生产系统,则需要采取另一种方法: 您将使用枚举类型定义一个新属性(名称不同)。 然后,您可能会更新任何代码以使用新字段。 您还必须负责数据迁移,即编写一些将旧数据(例如字符串“星期一”转换为新的枚举值)的脚本。

希望这会有所帮助!