在Hybris中重新定义items.xml中的数据类型

在Hybris中重新定义items.xml中的数据类型,hybris,Hybris,我在items.xml中定义了一个数据类型,如下所示: <attribute qualifier="daysOfWeek" type="java.lang.String"> <persistence type="property" /> </attribute> 要将数据类型修改为枚举,我将其重新定义如下: <enumtype code="DaysOfWeek" autocrea

我在items.xml中定义了一个数据类型,如下所示:

 <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。这种方法有什么问题吗?

hybris不支持在“正在运行”的系统中进行这样的更新。 原因是hybris不会删除任何db列并重新创建它们,因为其中包含的任何数据都将丢失(另外,为多个受支持的数据库编写此逻辑可能很困难)

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

如果您有一个实时系统/生产系统,您必须采取另一种方法: 您可以使用枚举类型定义一个新属性(不同的名称!)。 然后,您可能会更新任何代码以使用新字段。 您还必须注意数据迁移,即编写一些脚本来传输旧数据(例如,字符串“Monday”到新的相应枚举值)

希望这有帮助